JQuery 使用 ajax 将 javascript 复制到文档
在左侧菜单中,使用此脚本在 div 中加载新页面:
$("#button").live('click',function(){
$("#content")
.html(ajax_load)
.load("page.html");
});
在 page.html 中,有一些 javascript 使用 ajax(也使用 jquery)添加一些 UI 元素。
当我点击同一个左侧菜单项 5 次(因此 div 加载 5 次)时,似乎 page.html 中的 javascript 被复制。当我调用 page.html 中的函数时,它会执行 5 次!
如何解决这个问题?
In the left menu is use this script to load a new page in a div:
$("#button").live('click',function(){
$("#content")
.html(ajax_load)
.load("page.html");
});
In the page.html there's some javascript to add some UI elements using ajax (also with jquery).
When i click the same left menu item 5 times (so the divs loads 5 times), it seems that the javascript in page.html gets copied. when i call a function in the page.html its get executed 5 times!!
How to fix this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您对 page.html 中的任何内容使用 live() ,即使加载了新的 page.html,事件处理程序也会持续存在,这可能就是您多次执行相同执行的原因。
If you use live() for anything inside page.html the event handler will persist even if a new page.html is loaded that's probably why you have the same execution multiple times.
“page.html”中发生了哪些 javascript 执行,它们是事件绑定吗?如果是这样,请查看 .live() 方法并从 page.html 文件中提取 javascript。当 page.html 的元素进入作用域时,live() 方法中的绑定将正确处理它们。
如果您正在做其他事情,请提供更多背景信息。
What javascript executions are happening in "page.html" Are they event bindings? If so, look at the .live() method and pull the javascript out of your page.html file. When the elements of the page.html are brought into scope they will be correctly handled by the bindings in the live() method.
If you are doing something else, please provide more context.