AJAX多次绑定jquery事件

发布于 2024-08-27 10:43:03 字数 303 浏览 6 评论 0原文

我有一个母版页设置,在最顶层的母版页中有一个 pageLoad,它为嵌套母版页调用 pageLoad2,而嵌套母版页则为内容页调用 pageLoad3。

在我的内容页面中,我有一个 jquery 单击事件,在我的嵌套母版页中,我有一个 Web 用户控件。

每当我在嵌套母版页中使用用户控件时,它都会重新绑定内容页面中的单击事件(无疑是因为再次调用 pageLoad3),但这使得单击事件在单击时触发两次。母版页越高,问题就越严重(例如,如果调用来自最顶层母版页的用户控件,则触发 3 次)。

谁能告诉我如何确保它只绑定 jquery 事件一次?

I have a masterpage setup, with a pageLoad in the topmost masterpage, which calls pageLoad2 for nested masterpages which calls pageLoad3 for content pages.

In my content page I have a jquery click event and in my nested masterpage I have a web user control.

Whenever I use the user control in the nested masterpage, it rebinds the click event in the content page (undoubtedly because the pageLoad3 is called again), but this makes the click event fire twice on a single click. The problem gets worse the higher up masterpages you go (eg. fires 3 times if user control from topmost masterpage is called).

Can anyone tell me how to make sure it only binds the jquery events once?

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

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

发布评论

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

评论(2

花伊自在美 2024-09-03 10:43:03

您可以使用 .one() 函数,它首先解除事件的绑定。

$("#name").one("click", function(){
  // insert code here
});

You can use the .one() function, which unbinds the event first.

$("#name").one("click", function(){
  // insert code here
});
澜川若宁 2024-09-03 10:43:03

您可以使用 .live()-handler 这样您就不必再次绑定控件又来了。

You could use the .live()-handler so you don't have to bind the controls again and again.

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