javascript - 在 Javascript/JQuery 中添加项目的新手,无法弄清楚 document.ready() 或 on()

标签 javascript jquery

我是 jquery/javascript 的新手。我注意到添加项目的函数 A 可以工作,但函数 B 在调用函数 A 后停止工作。我可以通过在函数 A 中重新包含函数 B 来解决这个问题,但我发现这样做不够优雅。当然,还有另一种方法吗?我已经尝试添加 $document.ready(),但由于它包含在其中,我猜它只是在循环?

这是我目前所拥有的:

<script type="text/javascript" charset="utf-8">
  $(document).ready( function () {

    //Function A
    $('a#create').click( function() {
      $("#existing").append('<option value="'+portName+'">'+portName+'</option>').multiselect("refresh");
      //multiselect is a plug-in that makes select option tags nicer to look at, on refresh the html is correctly parsed for Function B to continue working, however it does not work unless I re-call Function B here. Again calling $document.ready() here doesn't work either.
    });

    // Function B
    $('a.view').click( function() {
      alert();
    });
  });
</script>

我知道函数 B 正在调用 anchor 链接,但是函数 A 正确地为函数 B 的工作创造了这些条件。在正常的文档加载中,这不是问题。然而,在调用函数 A 之后,函数 B THEN 中断,除非我在函数 A 中包含函数 B。

我是否应该考虑创建一个调用所有其他函数来“刷新”它们的函数?我什至不确定问题是什么。我偶然发现了这个“修复”。

最佳答案

我不确定我是否理解你想做什么,但我认为你正在寻找的是:

<script type="text/javascript" charset="utf-8">
  $(document).ready( function () {

    //Function A
    $('a#create').click( function() {

    });

    // Function B, event delegation
    $('body').on('click', 'a.view', function() {
      alert();
    });
  });
</script>

关于javascript - 在 Javascript/JQuery 中添加项目的新手,无法弄清楚 document.ready() 或 on(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18645642/

相关文章:

用于在提交时检查表单值的 Javascript 函数

javascript - 用单个逗号替换所有出现的双逗号

javascript - typescript -基于另一个数组过滤对象数组

javascript - 粘贴文本时基于字数限制文本输入的 jQuery 函数不起作用

jquery - 如何让 jQuery 选项卡正常工作?

javascript - vuex 函数 - 根据对象值返回 true 或 false

javascript - 防止禁用按钮内的图标触发点击?

javascript - 单击 html 表格内的按钮时如何调用 javascript 函数?

javascript - 是否可以在页面正文中加载 Jquery

javascript - 无法设置作为参数传递的元素属性