javascript - 为什么动态删除脚本后该函数仍在运行?

标签 javascript jquery html

我正在尝试加载一个新的脚本标签,该标签动态地用新的内容替换 jQuery 内容(在 #clickmeDIV DIV 内),但是,一旦第二个脚本标签加载到 >#clickmeDIV DIV,替换的第一个脚本仍在运行,即使它不是 DOM 的一部分。我通过使用 chrome 开发者工具检查 DOM 来确认这一点。有没有办法完全删除第一个脚本,然后动态地将其替换为新脚本(无需重新加载页面)?

div {
  width: 300px;
  height: 300px;
  background-color: blue;
}
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="clickmeDIV">

  <script>
    $(document).on('click', '#clickmeDIV', function() {

      alert('Alert executed by the original script');
      $('#clickmeDIV').empty();

      $('#clickmeDIV').html('<script type="text/javascript">' +
        '$(document).on("click","#clickmeDIV", function(){' +
        'var foo  = function(){alert("Alert executed by the script inserted dynamically"); }; foo();' +
        '}); </s' + 'cript>');

    });
  </script>

</div>

最佳答案

您将一个点击事件处理程序附加到 ID 为 clickmeDIV 的 div。您可以使用

删除它
$(document).off('click', '#clickmeDIV');

或者

$('#clickmeDIV').off('click');

了解更多信息here

关于javascript - 为什么动态删除脚本后该函数仍在运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45991168/

相关文章:

javascript - 为 blockUI 使用外部 CSS 而不是内联 CSS

javascript - 使用 Node.js 监控第三方流量的最佳方法是什么?

javascript - 脚本只适用于十分之一的 div

javascript - 页面中文本的条件替换

javascript - 在孙子组件中通过 Link 管理路由

javascript - 使用 Google Calendar API v3 获取下一个重复事件实例

PHP 和 jquery 函数

css - 如何从左到右放置 DIV 并仅从第一项获取宽度?

javascript - svg.js - 如何从 SVG 文本元素获取 X 位置

html - Safari 5.0 按钮间距