首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

jQueryfind&filter、live&bind对比介绍及图片懒加载

live方法的处理机制就是把事件绑定在DOM树的根节点上,而不是直接绑定在某个元素上。...相比之下,bind会在事件在绑定阶段就会判断绑定事件的元素是否存在,而且只针对当前元素进行绑定,而不是绑定到父节点上。 根据上面的分析,live的好处真是很强大,那么为什么还要使用bind方法呢?...之所以jquery要保留bind方法而不是采用live方法去替代bind,也是因为live在某些情况下是不能够完全替代bind的。...取而代之的是,应当总是在一个选择器后面直接使用 .live() 方法。 3....当一个元素采用live方法进行事件的绑定的时候,如果想阻止事件的传递或冒泡,就要在函数中return false,仅仅调用stopPropagation()是无法实现阻止事件的传递或者冒泡的 三、 图片懒加载

68631
您找到你想要的搜索结果了吗?
是的
没有找到

jquery要怎么写才能速度最快?(转…

请看下面的例子,为a元素绑定一个处理点击事件的函数:   $('a').click(function(){     alert($(this).attr('id'));   }); 这段代码的意思是...比如,下面这样的写法就是糟糕的写法:   jQuery('#top').find('p.classA');   jQuery('#top').find('p.classB'); 更好的写法是:   ...因为elem.data()方法是定义在jQuery函数的prototype对象上面的, 而$.data()方法是定义jQuery函数上面的,调用的时候不从复杂的jQuery对象上调用,所以速度快得多。...尽量少生成jquery对象 每当你使用一次选择器(比如$('#id')),就会生成一个jQuery对象。jQuery对象是一个很庞大的对象,带有很多属性和方法,会占用不少资源。...所以,尽量少生成jQuery对象。 举例来说,许多jQuery方法都有两个版本,一个是供jQuery对象使用的版本,另一个是供jQuery函数使用的版本。

1.6K30

jQuery最佳实践

请看下面的例子,为a元素绑定一个处理点击事件的函数: $('a').click(function(){ alert($(this).attr('id')); }); 这段代码的意思是,点击a元素后,弹出该元素的...比如,下面这样的写法就是糟糕的写法: jQuery('#top').find('p.classA'); jQuery('#top').find('p.classB'); 更好的写法是: var cached...因为elem.data()方法是定义在jQuery函数的prototype对象上面的,而$.data()方法是定义jQuery函数上面的,调用的时候不从复杂的jQuery对象上调用,所以速度快得多。...所以,尽量少生成jQuery对象。 举例来说,许多jQuery方法都有两个版本,一个是供jQuery对象使用的版本,另一个是供jQuery函数使用的版本。...$("#text"); var $ts = $.text($text); 由于后一种针对jQuery函数的版本不通过jQuery对象操作,所以相对开销较小,速度比较快。

1.3K20

高质量jQuery代码的十二条经验

1、正确引用jQuery 尽量在body结束前才引入jQuery,而不是在head中。 借助第三方提供的CDN来引入jQuery,同时注意当使用第三方CDN出现问题时,要引入本地的jQuery文件。...因为ID选择器和元素选择器是原生的JavaScript操作,而类选择器不是,大家顺便可以看下find context 区别,find() children区别。...时,它将遍历整个DOM,jQuery方法还具有一个未充分利用的参数,既可以将一个上下文参数传入jQuery,以限制它只搜索DOM中特定的一部分。...('li'), $containerLiSpan= $containerLi.find('span'); 4、变量 4.1、避免全局变量 jQuery与javascript一样,一般来说,最好确保你的变量在函数作用域内...// 糟糕 - live 已经废弃 $('#stuff').live('click', function() { console.log('hooray'); }); // 建议 $('#stuff

1.2K40

jQuery 最佳实践(译)

元素上存数据的模式和反模式 // 不推荐 $(elem).data(key, value); // 推荐 $.data(elem, key, value); 上下文和查找 抓取元素时,推荐使用find...而不是用上下文 例如 $('.a', $('.b')); $('.b').find('.a'); 移除 当要对某个元素内容做一些复杂的修改时,先移除元素,处理好了,再追加回来 例如 var table...parent = table.parent(); table.detach(); table.addLotsAndLotsOfRows(); parent.append(table); 事件委托 用on而不是用...livelive这方法已被废除) 缓存抓取的元素 对于被多次使用的元素,用变量来缓存它,避免多次查询 window滚动事件 用户在快速滚动滚轮的时候,会触发很多次windows滚动事件,会导致滚动事件的处理函数的堆积...1.7的$.Callbacks()特性 使用jQuery UI的$.Observable 第三方组件 推荐朴灵的eventproxy

88030

面试官:为什么data属性是一个函数不是一个对象?

一、实例和组件定义data的区别 vue实例的时候定义data属性既可以是一个对象,也可以是一个函数 const app = new Vue({ el:"#app", // 对象格式...} } }) 组件中定义data属性,只能是一个函数 如果为组件data直接定义为一个对象 Vue.component('component1',{ template:`组件...警告说明:返回的data应该是一个函数在每一个组件实例中 二、组件data定义函数与对象的区别 上面讲到组件data必须是一个函数,不知道大家有没有思考过这是为什么呢?...... } 定义data会进行数据校验 源码位置:/vue-dev/src/core/instance/init.js 这时候vm实例为undefined,进入if判断,若data类型不是...(根实例是单例),不会产生数据污染情况 组件实例对象data必须为函数,目的是为了防止多个组件实例对象之间共用一个data,产生数据污染。

3.1K10

jQuery中on()、bind()、live()、delegate()之间的区别

事件冒泡 当我们点击一个链接时,其触发了链接元素的单击事件,该事件则引发任何我们已绑定到该元素的单击事件上的函数的执行。...; }); 因此一个单击操作会触发alert函数的执行。 ?...及其以上版本;jquery1.7版本出现之后用于替代bind(),live()绑定事件方式; event 必需项;添加到元素的一个或多个事件,例如 click,dblclick等; 单事件处理:例如...,但是根据官网解释,自从jquery1.7版本以后bind()函数推荐用on()来代替。...和.bind()相比的时候有一个好处就是我们不需要在每个元素上再去绑定事件,而只在document上绑定一次就可以了。尽管这个不是最快的方式,但是确实是最少浪费的。

1.2K30

jQuery 升级踩坑大全

function(){/* some code */}); 乍一看,中括号里面的参数可以省略掉,俩函数不是一模一样么?...于是天真地把函数live直接替换成on,大部分时候,这么做好像没有引起任何异常。...deprecated 早期jQuery中名字叫toggle的函数有两个,一个是用于控制元素的显示和隐藏,这个用途的函数目前jQuery中依旧存在;另一个就是上面提到的被废弃的toggle函数,它用于绑定至少两个函数到同一个元素...替换的方式是把两个函数合并成一个函数的if-else两个区段,然后自己设置一个boolean变量,控制每次点击时应该执行哪个区段即可。 4..... $(" "); //错误,字符串最开头有一个空格,不是以小于号'<'开头的 2.

3.8K90

与Ajax同样重要的jQuery(2)

的DOM操作 使用jQuery的九种选择器可以基本选中需要操作的对象,但是为了提高jQuery的查询效率,可以结合jQuery的内置查找函数一起使用 ①:查询 children([expr]) 获取指定的子元素...find(expr) 获取指定的后代元素 parents([expr]) 获得祖辈元素 parent() 获取父元素 next([expr]) 获取下一个兄弟元素 prev([expr]) 获取前一个兄弟元素...siblings([expr]) 获取所有兄弟元素 在XML 解析中 find 方法使用最多 对查找结果进行遍历操作 each(function(){… }) ,在each函数中可以通过this 获得...5.jQuery事件 ①:事件绑定 传统js 一般一个对象只能绑定某种事件一个函数 jQuery 支持对同一个对象,同一个事件可以绑定多个函数 绑定事件函数到对象有两种写法 写法一 $("div").click.../jquery-1.8.3.min.js"> $(function(){ // 使用live绑定 $("div").live

6.2K50

50个必备的实用jQuery代码段

其中的一些代码段是从jQuery1.4.2才开始支持的做法,另一些则是真正有用的函数或方法,他们能够帮助你又快又好地把事情完成。...('click', someFunction); //注意,在jQuery 1.4.2中,delegate和undelegate选项 //被引入代替live,因为它们提供了更好的上下文支持 //例如...option元素: $('#someElement').find('option:selected'); 如何隐藏一个包含了某个值文本的元素: $("p.value:contains('thetextvalue...它存在…… } 如何使用jQuery来检测右键和左键的鼠标单击两种情况: $("#someelement").live('click', function(e) { if( (!...如何在jQuery中克隆一个元素: var cloned = $('#somediv').clone(); 在jQuery中如何测试某个元素是否可见 if($(element).is(':visible

6.7K00

asp.net中ScriptManager自带Ajax与jQuery事件冲突

问题引诉:最近在使用asp.net自带的无刷新提交ScriptManager时,发现一个问题,就是和我自己用jQuery写的一些事件函数和局部刷新相冲突。...所以针对上面问题,只需要在绑定事件的时候使用target.live("click",function(){})方式即可(jQuery版本必须是在1.4及其以上) 下面简单说明一下jQuery通过bind...和live两种方式绑定事件的区别        live方法其实是bind方法的变种,其基本功能就同bind方法的功能是一样的,都是为一个元素绑定某个事件,但是bind方法只能给当前存在的元素绑定事件,...live方法的处理机制就是把事件绑定在DOM树的根节点上,而不是直接绑定在某个元素上。...下面是一个简单的例子: <script src="Js/<em>jquery</em>-1.7.1.js" type="text

99710

jq---方法总结

什么是jQuery 在使用jQuery之前,我们必须先了解什么是jQuery,它能够干什么(不然我们为啥要用它)。 jQuery一个非常流行的快速、小巧、功能强大的开源JavaScript库。...2.版本的区别 jQuery库的js文件一般有两个版本:一个jquery-version.js(这里的version表示具体版本号,下同),一个jquery-version.min.js。...建议你在生产环境中使用该文件,以便于用户浏览器能够更快地加载jQuery库。 3.文档加载完毕后执行的处理函数?...class="foo bar">Hello CodePlayer'); // 包含一个临时的div元素,其内嵌一个子节点p元素 六:元素的筛选 // 以下方法都返回一个新的jQuery...$("selector").unbind("click"); //主要用于解除通过live()方法绑定的处理函数 $("selector").die("click"); //主要用于解除通过delegate

3K20

JavaScript 事件委托 以及jQuery对事件委托的支持

jquery 对事件委托的支持 在jQuery里对事件委托的支持,有以下几个函数: ?...jQuery还有另外一种方式:将元素的事件处理委托给DOM根节点来处理,这种方式是live()方式: live(type, [data], fn) type   : 事件类型 data :附加的额外数据...fn   : 相应的处理函数 描述:jQuery 给所有匹配的元素附加一个事件处理函数,即使这个元素是以后再添加进来的也有效。...与live() 相对应,取消绑定,则用下列代码: $("p").die(); 在事件绑定上,jQuery 提供了一种更通用的函数: on(events,[selector],[data],fn)...第二,理论上委托会导致浏览器额外的加载,因为在容器内的任意一个地方事件的发生,都会运行事件处理函数,所以多数情况下事件处理函数都是在空循环(没有意义的动作),通常不是什么大不了的事儿。

78360
领券