我使用插件(Event Organizer Pro)根据数字字段的输入动态创建div - 基本上它会根据您在输入字段中输入的数字创建表单字段的副本。
我需要运行一些基于这些表单字段的jQuery,但显然无法运行它直到div被创建。
创建div后如何运行脚本?是否可以在创建div id时运行脚本?或类似的东西?
答案 0 :(得分:1)
是的,您可以将DOMNodeInserted
事件委托给body
。
function createDiv() {
$('<div />').addClass('test').appendTo($('body'));
}
$('body').on('DOMNodeInserted', '.test',function() {
alert('Created element .test');
})
$("button").on('click', function() {
createDiv();
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button>Create</button>
在上面的示例中,单击按钮会模拟创建div的其他脚本。
要重写代码以使用您的设置,您可以删除点击部分并将事件监听器委派给您的ID:
$('body').on('DOMNodeInserted', '#your_element',function() {
yourFunction();
// call a function here or add your code here directly
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
注意:此示例在此处不起作用,因为具有该ID的元素不存在,并且yourFunction()函数也不存在。