jquery append加入新元素后事件无效处理方法
2013-12-27 20:26
387 查看
jquery append加入新元素后事件无效处理方法
在很多网站上说是使用live就可以用,但是我发现我使用的jquery的版本是1.9,在1.9后live删除了,所以改用on的方法来处理
根据jQuery的官方描述,live方法在1.7中已经不建议使用,在1.9中删除了这个方法。并建议在以后的代码中使用on方法来替代。
on方法可以接受三个参数:事件名、触发选择器、事件函数。中间有个触发选择器的参数,使用它就可以实现live的效果。这个触发选择器实际上就是在JQ内部判断了一次事件参数的$(e.target).is(selector),只有触发对象匹配触发选择器才会触发。这是利用了事件冒泡的机制来完成的,原本的live也是使用冒泡机制所以既然on可以实现那么live也就没有存在的必要了,只不过为了兼容让它从1.7苟延残喘的活到了1.9而已。
这篇文章也没啥内容了,接下来就用这个功能做点有意义的事情示范下吧~ 在低版本IE中A标签在鼠标按下时候会出现虚线边框,这是由focus造成的。我们只要在全局事件中做点手脚就能解决这个问题。在现代浏览器中focus是不冒泡的,但是低版本浏览器中可以冒泡。所以对于低版本浏览器中对focus使用live是有效的。在jQuery1.9之前的版本我们可以这样写:
$(document).on('click','.school-item',function(){
var item=$(this);
//更新选择大学文本框中的值
$('#text_school').val(item.text());
});
在很多网站上说是使用live就可以用,但是我发现我使用的jquery的版本是1.9,在1.9后live删除了,所以改用on的方法来处理
根据jQuery的官方描述,live方法在1.7中已经不建议使用,在1.9中删除了这个方法。并建议在以后的代码中使用on方法来替代。
on方法可以接受三个参数:事件名、触发选择器、事件函数。中间有个触发选择器的参数,使用它就可以实现live的效果。这个触发选择器实际上就是在JQ内部判断了一次事件参数的$(e.target).is(selector),只有触发对象匹配触发选择器才会触发。这是利用了事件冒泡的机制来完成的,原本的live也是使用冒泡机制所以既然on可以实现那么live也就没有存在的必要了,只不过为了兼容让它从1.7苟延残喘的活到了1.9而已。
这篇文章也没啥内容了,接下来就用这个功能做点有意义的事情示范下吧~ 在低版本IE中A标签在鼠标按下时候会出现虚线边框,这是由focus造成的。我们只要在全局事件中做点手脚就能解决这个问题。在现代浏览器中focus是不冒泡的,但是低版本浏览器中可以冒泡。所以对于低版本浏览器中对focus使用live是有效的。在jQuery1.9之前的版本我们可以这样写:
$("a").live("focus",function(){ this.blur(); });jQuery1.9之后由于live被删除了,所以应该这样写
$(document).on("focus","a",function(){ this.blur(); });还要注意个问题,如果是从live的写法换成on的写法别忘了调整调用链。因为live的返回值是事件触发的对象,而使用on则是在容器对象上。
//jQuery1.9- $("#panel").find("div").live("click",function(){ alert("x"); }).addClass("x"); //jQuery1.9+
//此处div可以是选择的对象 如 class :.school-item id: #id $("#panel").on("click","div",function(){ alert("x"); }).find("div").addClass("x");
$(document).on('click','.school-item',function(){
var item=$(this);
//更新选择大学文本框中的值
$('#text_school').val(item.text());
});
相关文章推荐
- jquery append加入新元素后事件无效处理方法(转载)
- 处理jQuery append加入的元素 绑定事件无效的方法
- 关于jquery append() 加入的元素,绑定事件无效的方法
- 解决使用jQuery采用append添加的元素事件无效的方法
- JQuery设置onclick事件无效的处理方法
- 解决jQuery使用append添加的元素事件无效的方法
- 解决使用jQuery采用append添加的元素事件无效的方法
- jquery 通过 live() 方法附加的事件处理程序适用于匹配选择器的当前及未来的元素(比如由脚本创建的新元素)
- 使用append出的标签用on绑定事件无效的解决方法
- jQuery基础系列(三)---事件介绍(3)---事件处理方法
- jquery技巧总结-jQuery对象,集合,方法扩展,事件处理,特效,解决冲突
- jQuery的事件处理方法介绍 - bind(),live(),delegate(),on()
- 用Jquery动态append方式加入标签时Css样式丢失的解决方法
- JQuery入门――用bind方法绑定事件处理函数应用介绍
- jQuery 的 live() 方法对 hover 事件的处理
- 关于jquery中动态增加select,事件无效的快速解决方法
- jQuery的live()方法对hover事件的处理示例
- 用Jquery动态append方式加入标签时 css样式丢失的解决方法
- 关于jQuery用bind动态绑定事件无效的处理
- live()解决Jquery采用append添加的元素事件无效和获取不到添加元素的值