div添加后运行脚本

时间:2017-03-06 12:40:03

标签: javascript jquery listener

我使用插件(Event Organizer Pro)根据数字字段的输入动态创建div - 基本上它会根据您在输入字段中输入的数字创建表单字段的副本。

我需要运行一些基于这些表单字段的jQuery,但显然无法运行它直到div被创建。

创建div后如何运行脚本?是否可以在创建div id时运行脚本?或类似的东西?

1 个答案:

答案 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()函数也不存在。