jQuery ajax 加载元素,自动向它们添加事件?

发布于 2025-01-06 05:40:15 字数 381 浏览 0 评论 0原文

我的网站对导航的每个部分都使用 ajax 和主题标签,因此每个元素(主要导航部分除外)都是通过 ajax 加载的,这会破坏与其中任何元素(或确切发生的任何情况)之间的 DOM 连接,所以我不能只是在我的 javascirpt 中有这样的东西,它适用于所有事情:

$(".chat-wrapper li").draggable();

目前我必须将其放在我的 ajax 调用的成功部分中,这样当加载聊天按钮时,它会将其添加到其中,这不是我唯一的这个存在的实例一个问题,很多事情都会发生这种情况,这只是我当前的例子,所以我的问题是 jquery 或任何东西有办法解决这个问题吗?必须有某种方法来执行此操作,因此初始页面加载后调用的任何元素也适用于这些和所有元素。

谢谢。

My website uses ajax and hashtags for every part of the navigation, so every element, (except for the main navigational parts) are loaded via ajax, which breaks the DOM connections to any elements inside of those (or whatever exactly happens), so I can't just have something like this in my javascirpt and it work for everything:

$(".chat-wrapper li").draggable();

currently I have to put this in the success part of my ajax call so when the chat buttons are loaded it adds this to them, and this is not my only instance of this being a problem, it happens for many things, this is just my current example, so my question is that does jquery or anything have a way of getting around this? There must be some method of doing this, so any element called in after the initial page load also works with these and all.

thanks.

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

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

发布评论

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

评论(1

你爱我像她 2025-01-13 05:40:15

如果您希望将事件绑定到元素并使其持续存在,您可以查看 jQuery 函数 .live()

http://api.jquery.com/live/

编辑:快速查看后,会出现jQuery 1.7+ 的 .on (http://api.jquery.com/on/) 和 .delegate() (http://api.jquery.com /delegate/) 对于 jQuery 1.4.3+ 会成为更好的解决方案。每个函数的使用示例都存在于页面链接上,但您可能可以这样使用它(我可能是错的,因为我只是快速输入它):

$(".chat-wrapper").delegate("li", "bind", function() {
    this.draggable();
});

或者:

$(".chat-wrapper li").on("bind", function() {
    this.draggable();
});

If you're looking to bind an event to an element and have it persist, you can look into the jQuery function .live().

http://api.jquery.com/live/

Edit: After a quick look, it would appear that .on for jQuery 1.7+ (http://api.jquery.com/on/) and .delegate() (http://api.jquery.com/delegate/) for jQuery 1.4.3+ would be better solutions. Usage examples for each function exists on the page links, but you can probably use it this way (I may be wrong as I just quickly typed it up):

$(".chat-wrapper").delegate("li", "bind", function() {
    this.draggable();
});

Alternatively:

$(".chat-wrapper li").on("bind", function() {
    this.draggable();
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文