jQuery on()方法绑定动态元素的点击事件无响应的解决办法

$(‘#check_all‘).on(‘click‘ , function(){

alert(1);

});

$("#yujinlist").append(html);

count++;

}

以上代码执行时,点击#check_all时,alert一直没反应,后在网上查资料时,才知道on前面的元素也必须在页面加载的时候就存在于dom里面, 那原话是这样的:

支持给动态元素和属性绑定事件的是live和on,其中live在JQUERY 1.7之后就不推荐使用了。现在主要用on,使用on的时候也要注意,on前面的元素也必须在页面加载的时候就存在于dom里面。动态的元素或者样式等,可以放在on的第二个参数里面。

下面看下jquery on() 方法绑定动态元素

下面方法只为第一个class 为 evt 的div 绑定了click事件,使用append动态创建的div则没有绑定

<script>

// 先绑定事件再添加div

$(‘#test .evt‘).on(‘click‘, function() {alert($(this).text())});

$(‘#test‘).append(‘<div class="evt">evt2</div>‘);

</script>

正确的用法如下:

<script>

$(‘body‘).on(‘click‘, ‘#test .evt‘, function() {alert($(this).text())});

$(‘#test‘).append(‘<div class="evt">evt2</div>‘);

</script>

时间: 2024-12-25 22:09:39

jQuery on()方法绑定动态元素的点击事件无响应的解决办法的相关文章

on()方法绑定动态元素的点击事件无响应

on前面的元素也必须在页面加载的时候就存在于dom里面 支持给动态元素和属性绑定事件的是live和on,其中live在JQUERY 1.8之后就不推荐使用了.现在主要用on,使用on的时候也要注意,on前面的元素也必须在页面加载的时候就存在于dom里面.动态的元素或者样式等,可以放在on的第二个参数里面. <script> $(function(){ $(".col-sm-10 .infor_data").on("click",".infor_

jQuery on()方法绑定动态元素的点击事件

之前就一直受这个问题的困扰,在jQuery1.7版本之后添加了on方法,之前就了解过,其优越性高于live(),bind(),delegate()等方法,在此之前项目中想用这个来测试结果发现,居然动态生成的标签点击了没反应,而live方法却能够支持,于是乎到处查资料,问网友,结果找了好久在一篇文章中终于找到了答案... jQuery 使用on绑定动态生成的元素时,不能直接用该对象操作,而是选择其非动态生成的父节点然后再找到本身才能达到效果.大家看看源码就知道了.生成的按钮基数项on方法点击无效l

jQuery on()方法绑定动态元素的点击事件无效

之前就一直受这个问题的困扰,在jQuery1.7版本之后添加了on方法,之前就了解过,其优越性高于live(),bind(),delegate()等方法,在此之前项目中想用这个来测试结果发现,居然动态生成的标签点击了没反应,而live方法却能够支持,于是乎到处查资料,问网友,结果找了好久在一篇文章中终于找到了答案... jQuery 使用on绑定动态生成的元素时,不能直接用该对象操作,而是选择其非动态生成的父节点然后再找到本身才能达到效果.大家看看源码就知道了.生成的按钮基数项on方法点击无效l

jquery on方法 绑定动态元素 出现的问题

之前使用 on 的时候一直是 $("").on('click','function(){  }') 之后发现有些时候一直无法绑定(比如元素动态生成时),查看文档后发现正确用法应该是 $(document).on("change","#pageSize_out",function(){ if($("#page_out").val()!=0){ $("#pageSize").val($(this).val())

Iphone上对于动态生成的html元素绑定点击事件$(document).click()失效解决办法

在Iphone上,新生成的DOM元素不支持$(document).click的绑定方法,该怎么办呢? 百度了N久都没找到解决办法,在快要走投无路之时,试了试Google,我去,还真找到了,歪国人就是牛逼,原帖地址:http://stackoverflow.com/questions/3705937/document-click-not-working-correctly-on-iphone-jquery 大概意思是,如果要用$(document).click()来绑定新生成的DOM元素,必须给此

注意:MainActivity的oncreate方法里不要再inflate布局了(MainActivity里的点击事件无响应)

activity_main已经通过setContentView(R.layout.activity_main);设置给MainActivity, 不要再inflate出新布局,然后findviewbyid,然后得出控件,再对控件进行其他设置,包括设置点击事件等等. 错误做法: 1 @Override 2 protected void onCreate(Bundle savedInstanceState) { 3 super.onCreate(savedInstanceState); 4 setC

jquery无法为动态生成的元素添加点击事件的解决方法

遇到 jquery无法为动态生成的元素添加点击事件,谷歌一下,整理一下解决方法如下: (<li>中间的元素是动态生成的), 现在想为<i>添加点击事件, 例子如下: <div> <ul> <li> <span> <i class='icon'>这是元素内容</i> //i是动态生成 </span> </li> </ul> </div> 解决方法如下: $(docu

jquery data方法获取某个元素上事件

获取某个元素上的事件,jquery的给元素绑定的事件可以用data方法取出来. 通过$(element).data("events")来获取 // 比如给一个button绑定两个click事件 $("button").click(function() { alert("1") }); $("button").click(function() { alert("2") }); // 这个时候点击该button

关于jQuery中动态生成的点击事件触发两次的讨论

由于是动态生成的  点击事件运用了jQuery里面的on()方法,绑定在body上面,结果在程序里面运行了两次.参考了博客 利用on和off方法编写高效的js代码知道了很多在dom对象删除以后,其声明的绑定在window上的事件还一直存在,导致相同的功能代码执行了几次.故使用之前要清理掉body上绑定的click事件,利用了jQuery里面off()方法. $('body').off('click').on('click','selector',function(){});