jquery - 用于加载动态执行函数

时间:2018-03-16 12:08:25

标签: jquery load onload

每次在html页面中添加具有特定类的div标签时,我希望执行一个函数。

例如:

我动态添加:

<div class="myform" id="myID"></div>

执行函数go_form()。

我尝试了一个代码:

$(document).on("load", ".myform", function(){
   var div_id = $(this).attr("id")
   go_form(div_id)
});

但它不起作用。

感谢您的帮助!!!

2 个答案:

答案 0 :(得分:0)

有很多复杂的方法可以做到这一点 - MutationObserver是显而易见的方法。但是,当您自己的代码插入元素时,我只需在插入代码时触发事件并使用其他函数进行侦听。

因此,在添加新元素的函数中,请使用此元素。您需要设置变量newForm以包含您刚刚创建的表单。

$(document).trigger("formadded", [newForm]); // you can use whatever event name you like

您想要回应表格的新存在:

$(document).on("formadded", function(form) {
    go_form(form);
});

或者,为了进一步简化它:

$(document).on("formadded", go_form);

请参阅the documentation for trigger

答案 1 :(得分:0)

以下是DOM更改的另一种方法 -

$("body").on('DOMSubtreeModified', function() {
    if($(this).find('#myID')){
       // Call your function here
    }
});

如果你的身体下有mainDiv,请使用这个 -

$("body").on('DOMSubtreeModified', "#mainDiv", function() {
        if($(this).find('#myID')){
           // Call your function here
        }
});