我正在编写一个 jQuery 插件。在这个插件中,我将现有BODY
内容包装在 a 中DIV
并隐藏它们。
var $originalBodyContents = $('body').wrapInner('<div>').children('div').hide();
然后插件将自己的叠加层附加DIV
到BODY
并发挥它的插件魔力。当用户退出插件时,它会移除其覆盖层DIV
,并展开它们。
$originalBodyContents.children().unwrap();
正如您在此演示中看到的那样,这很好用:http:
//jsfiddle.net/vKddB/1/
但是,如果页面上有内容脚本,那么它们都会在发生换行时重新加载并再次运行它们的代码。这会导致很多意外行为,如您在此演示中所见:http:
//jsfiddle.net/vKddB/3/
在上面的演示中,您将看到“显示警报”按钮显示“你好!”的警报。点击时。如果您触发插件并关闭插件,您会注意到“显示警报”按钮现在有两个与之关联的单击处理程序,因此在单击时会显示两个警报。
我的插件将无法控制它正在运行的页面的内容。当我将正文内容包装在 a 中时,有没有办法可以防止内联脚本重新运行DIV
?