AJAX多次绑定jquery事件
我有一个母版页设置,在最顶层的母版页中有一个 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用 .one() 函数,它首先解除事件的绑定。
You can use the .one() function, which unbinds the event first.
您可以使用 .live()-handler 这样您就不必再次绑定控件又来了。
You could use the .live()-handler so you don't have to bind the controls again and again.