jquery 选择器在 load() 之后停止工作

发布于 2024-10-11 03:59:09 字数 258 浏览 4 评论 0原文

简而言之,我有一个页面,其中的内容正在使用 jquery load() 加载。问题是当我尝试选择时。

$('a.selected_class').click(function(e){
 alert('alert');
 e.preventDefault();
});

(在文档内就绪)在第一页上工作,但在任何后续页面(使用 $(this).load(url); 加载到 div 中),选择器停止工作。

有什么建议吗?

in short, i have a page where the content is being loaded with jquery load(). the problem is when i am trying to select.

$('a.selected_class').click(function(e){
 alert('alert');
 e.preventDefault();
});

(inside document ready) works on the first page, but on any subsequent pages (that are loaded using $(this).load(url); into a div), the selector stops working.

any tips?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

找回味觉 2024-10-18 03:59:09

click() 仅适用于当前页面上存在的元素。查看 live委托。对于 live

$('a.selected_class').live("click", function(e){
 alert('alert');
 e.preventDefault();
});

正如 patrick dw 提到的,如果可能的话,delegate 是首选。

click() only will work on elements that exist on the page currently. Check out live and delegate. With live:

$('a.selected_class').live("click", function(e){
 alert('alert');
 e.preventDefault();
});

As patrick dw mentions, delegate is preferred if possible.

赏烟花じ飞满天 2024-10-18 03:59:09

这并不是说它停止工作。它仅将点击处理程序绑定到运行时(页面加载时)存在的那些元素。

您可以在 < 上放置 .delegate() 处理程序;div> 动态的被加载到。

$('#mydiv').delegate('a.selected_class','click',function(e){
   alert('alert');
   e.preventDefault();
});

该处理程序放置在 #mydiv 元素上,当 click 事件冒泡到它时,它会测试该事件是否发生在与 匹配的元素上>a.selected_class

.live() 方法执行相同的操作,但它针对整个文档执行此操作,因此通常不建议使用该方法。

It isn't that it stops working. It is that it only binds click handlers to those elements that exist when it runs (on page load).

You can place a .delegate() handler on the <div> that the dynamic ones are loaded into.

$('#mydiv').delegate('a.selected_class','click',function(e){
   alert('alert');
   e.preventDefault();
});

The handler is placed on the #mydiv element, and when the click event bubbles up to it, it tests to see if the event took place on an element that matches a.selected_class.

The .live() method does the same thing, but it does it for the entire document, so it normally isn't an advisable method to use.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文