我在一个页面中执行了多次.load()方法每次将HTML中的内容替换掉,替换中的页面中也有 JS 文件, 这样当页面执行某个方法适合会重复被调用. 但页面中只有一个 js 文件.请问怎么办呢?
jquery load方法 导致页面和js加载了两次
打开jqueryUI的dialog对话框,使用jquery的load方法加载局部页面,局部页面中使用<script>引用了一个js文件。
问题:在多次打开关闭dialog对话框N次后,引用的js文件也被加载了N次(调试器中可以看到N个相同的JS文件),当执行对话框内的操作时,js中相应的代码也被执行N次。
load加载页的引入的js,通过控制台的Sources
标签页看不到,
但是实际上确实被加载执行了,你在load引用的js里使用debugger
或者console.log()
之类的方法就可以调试load页引入的js了。
另外看你绑定事件的写法是什么样子的。
$('body').on('click','#btn',function(){})
这样的绑定你重新载入页面也依旧有效。
那你就需要调用 $('body').off('click','#btn')
解除绑定了。
$('#btn').click(function(){})
而这样的绑定只会对目前的页面已有的dom绑定事件。
这种情况 你load之后新的dom不会有之前的事件响应的。