在Javascript/JQuery中新增附加项,可以';无法理解document.ready()或on()

在Javascript/JQuery中新增附加项,可以';无法理解document.ready()或on(),javascript,jquery,Javascript,Jquery,我对jquery/javascript非常陌生。我注意到,添加项的函数A可以工作,但函数B在调用函数A后停止工作。我可以通过在函数A中重新包含函数B来解决这个问题,但我发现这是不雅观的。当然,还有别的办法吗?我已经尝试添加$document.ready(),但既然它包含在其中,我猜它只是循环 这就是我到目前为止所做的: <script type="text/javascript" charset="utf-8"> $(document).ready( function () {

我对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>

$(文档).ready(函数(){
//功能A
$('a#create')。单击(函数(){
$(“#现有”).append(“”+portName+“”).multiselect(“刷新”);
//multiselect是一个插件,它使选择选项标记看起来更美观,刷新时会正确解析html以使函数B继续工作,但是除非我在此处重新调用函数B,否则它不会工作。再次在此处调用$document.ready()也不起作用。
});
//功能B
$('a.view')。单击(函数(){
警惕();
});
});
我知道函数B正在调用锚链,但是函数A正确地为函数B的工作创建了这些条件。在正常的文档加载中,这不是问题。然而,在调用函数A之后,函数B就会中断,除非我在函数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>

$(文档).ready(函数(){
//功能A
$('a#create')。单击(函数(){
});
//职能B,活动授权
$('body')。在('click','a.view',function()上{
警惕();
});
});

阅读有关“活动授权”的内容。我读了,我不明白。我是否应该从这些函数中创建函数,然后再附加--调用事件委派?看看这个答案是否有帮助--这真的很有帮助--基本上,我假设,因为我正在创建一个在document ready上都是“直接”给定指令的项,我应该将这些指令“委派”到父容器中。真的很有帮助,因为我根本搞不懂。谢谢:)AKA-如果我想两者都继续工作,我只需要再创建一个$('body')。on()也可以吗?如果是这样的话,那么我想我所有的点击事件都应该这样写。实际上,当您执行类似$(选择器)的操作时。在('event',function())上,它只适用于匹配选择器的元素,这些元素已经在DOM中。如果要使用相同的事件添加新元素,则必须执行本例中的«事件委派»(可以使用更具体的元素而不是正文来提高性能)。在你的例子中,我认为只有一个元素与a#create匹配,而你不会创建与之匹配的新元素,因此你的函数a的代码是可以的。是的,我明白了为什么你是对的——不过还需要等待一分钟才能给你打勾——对不起。