Javascript 如何将jquery函数附加到加载页面后追加的div,而不触发任何事件

Javascript 如何将jquery函数附加到加载页面后追加的div,而不触发任何事件,javascript,jquery,html,Javascript,Jquery,Html,如何将Jquery函数附加到加载页面后附加的div上,而不触发任何事件 在下面的示例中,defaultTab-28是稍后添加到页面的div <a href="javascript:toggleDiv('defaultTab-28')" 如果使用.delegate()或.on(),则必须指定事件,如单击等,但在这种情况下不需要事件触发器 编辑:更准确地说: 我知道在使用JQuery时使用内联JS是不好的,我本可以使用JQuery中的按钮点击功能,但我的问题是:有没有像.on或.deleg

如何将Jquery函数附加到加载页面后附加的div上,而不触发任何事件

在下面的示例中,defaultTab-28是稍后添加到页面的div

<a href="javascript:toggleDiv('defaultTab-28')" 
如果使用.delegate()或.on(),则必须指定事件,如单击等,但在这种情况下不需要事件触发器

编辑:更准确地说:

我知道在使用JQuery时使用内联JS是不好的,我本可以使用JQuery中的按钮点击功能,但我的问题是:有没有像.on或.delegate这样的函数来分配一个没有事件的函数

  • 我已将一个div添加到现有页面
  • 当任何人单击标记时,我希望传递给javascript函数的div(这里是我的div)使用jquery toggle,但是因为这个div是在以后添加的,所以它不能绑定到toggle函数
  • JavaScript

    function toggleDiv(divObj){
         $(divObj).toggle();
    }
    
    HTML(稍后将附加的内容):


    您的代码已经按原样工作,您不需要对尚未存在的div执行任何操作

    函数切换div(id){
    $(“#”+id).toggle();
    }
    setTimeout(函数(){
    $(“body”)。追加(“我是div!!!”;
    },5000);
    
    使用此html:

    <a href="javascript:toggleDiv('defaultTab-28')">Click me to toggle the div that will be appended in 5 seconds.</a> ​
    
    请回答您的评论:

    我知道在使用JQuery时使用内联JS是不好的,我本可以使用JQuery中的按钮点击功能,但我的问题是:有没有像.on或.delegate这样的函数来分配一个没有事件的函数


    不,必须有某种事件来告诉javascript引擎何时运行代码。添加到页面中的元素是一个事件,称为变异事件。还有一些突变观察者也能很好地处理这一问题,他们的本意是取代突变事件。两者都没有很好的跨浏览器支持。

    使用jQuery在页面上内联JS?草率。噢,请原谅,当其他人在评论中误解了他的问题时,我提供了一个解决方案。@HristoYankov您对他的问题的评论与您的答案建议的解决方法不匹配。没有人理解这个问题,因此,有多条评论要求OP解决它@是的,不。一定有个活动。他不想玩一下扳机吗?@HristoYankov我不知道,你告诉我。我就是这样解释他的问题的,而你似乎是根据你对他的问题的评论来解释的。@HristoYankov,OP说,“……但在这种情况下,事件触发器是不必要的”我认为你的代码是好的+1。然而,我相信OP错误地认为,当他“切换”时,他是在“附加”。
    <div onClick='toggleDiv(this);'></div>
    
    function toggleDiv(id){
        $("#" + id).toggle();
    }
    
    setTimeout(function(){
        $("body").append("<div id='defaultTab-28'>I'm the div!!!</div>");
    },5000);
    
    <a href="javascript:toggleDiv('defaultTab-28')">Click me to toggle the div that will be appended in 5 seconds.</a> ​