我使用Laravel 5.2来开发我的单页应用程序。我有add.blade.php并且在其中有脚本和edit.blade.php,它们具有相同的脚本,相同的类名和id。当我.load
add.blade.php时,脚本运行正常。然后动态地.load
edit.blade.php,这时在DOM及其脚本中删除了add.blade.php。但是它的脚本仍然不是我的edit.blade.php中的那个。
答案 0 :(得分:1)
我认为在删除/替换包装<script>
标记后,您希望jQuery代码失去它的效果。但它没有这种方式。
请考虑以下示例:
#script-wrapper{padding-left: 15px; border: solid 1px black; background-color: gold}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div id="script-wrapper">
<h3> Script wrapper</h3>
<p>foo() is defined in here</p>
<script type="text/javascript">
function foo() {
alert("Foo");
}
</script>
</div>
<hr />
<input type="button" id="runFoo" value="Run foo()" />
<input type="button" id="removeScript" value="Remove script wrapper" />
<script type="text/javascript">
jQuery("#runFoo").click(function () {
foo();
});
jQuery("#removeScript").click(function () {
jQuery("#script-wrapper").remove();
});
</script>
在上面的示例中,我们在foo()
元素中定义了函数#script-wrapper
。您可以使用按钮运行此功能,或者使用另一个删除#script-wrapper
。在这里您可以注意到,即使从DOM中删除#script-wrapper
,也可以触发该函数。
如果您希望最终使用当前功能,可以手动“取消定义”它。从示例中删除#script-wrapper
不会为您执行“undefinition”。
foo = void(0); //this will set foo to undefined