为什么有些时候jquery点击事件失败了?

时间:2011-05-11 13:36:50

标签: ajax jquery

我的页面分为两部分verticallyLeft part就像一个菜单部分。点击 任何菜单都会在页面的right part中显示与该菜单相关的正确数据。我是 使用ajax call执行此操作,并且只刷新div on the right part。我正在使用jquery点击事件.. 说:

$("#left_part").click(function() {  // ajax call here });

现在我在jquery action上还有一些right part。 (比如显示隐藏一些也适用于click event.的div) 但是当new div reloads右侧部分click event on the right part无效时bind the click event。 但当我$("#some_right_part").click(function() {/ some hide show here )}; Not working $("#some_right_part").bind('click', function(event){ // some hide show here )}; works fine 时,它就可以了。

说:

fresh page

重要提示:当我在$("#some_right_part").click(function() {/ some hide show here )}; works fine.时(尚未拨打正确的电话)$().click(function)

但我所知道的是:$().bind('click',function)来电{{1}}

那么,这背后的原因是什么?或者解决此类问题的最佳方法是什么

由于

1 个答案:

答案 0 :(得分:3)

当页面加载时,通过$().click分配点击事件时,click事件将绑定到所有匹配的元素。但是,当您执行ajax调用并接收新标记时 - 新元素不会绑定到click事件,因为它们在您第一次调用$().click时不存在。

有一种方法可以将click事件绑定到所有元素以及可能创建的所有未来元素。您必须使用live方法,如下所示:

$('#elements').live('click', function() {
   // do logic
});