为什么jquery新增的节点不能响应事件(没反应)?

原因很简单,因为你还没有没有“刷新”!

例如,本来的页面是↓

>下面的例子对新增的节点不能实现隐藏,而对本来已存在的节点是可以实现隐藏事件的=>>>新增一个“点我隐藏”</button><script>$(“button”).click(function(){$(“div”).append(‘<p>点我隐藏</p>’);});$(“p”).click(function(){$(this).hide();});>

你不妨试试复制来运行看看,新增的节点的确是不能实现隐藏事件,即便已经有了$(this).hide()的定义。

如果你有接触过jQuery Mobile,你肯定也知道,Ajax动态加载的列表等,都需要refresh一下才能显示效果。

这里也是类似的道理。

当页面加载完成后,,hide()事件就仅仅绑定当前在document里面存在的<p>节点,而对于新增的节点,肯定是没有绑定的啦。。。

所以我们就需要“刷新”。这个“刷新”显然不是按F5啦,而是对当前页面里存在的(包括刚才新增的节点)进行重新绑定。

方法很简单,用的是bind()。

下面就是可以正常实现功能的代码↓

>下面的例子对新增的节点也能实现隐藏=>>>新增一个“点我隐藏”</button><script>$(“button”).click(function(){$(“div”).append(‘<p>点我隐藏</p>’);refresh();//调用下面自定义的refresh函数});$(“p”).click(function(){$(this).hide();});{$(“p”).bind(‘click’,function(){$(this).hide();});}>

是不是觉得好好玩呢?哈哈~~~

所有的失败,与失去自己的失败比起来,更是微不足道

为什么jquery新增的节点不能响应事件(没反应)?

相关文章:

你感兴趣的文章:

标签云: