我在网上搜索但不能做这项工作..
我在js.file中创建一个对话框。在这个js我有一个创建按钮的功能,但是使用innerHTML ...
var divButtons = document.getElementById('buttons_insert1');
var buttons_insert = "<button id='okcad' class='button_ok' value='' > <img src='/php/Images/OK.png' alt='OK' /> OK </button>";
divButtons.innerHTML = divButtons.innerHTML + buttons_insert;
并且在index.html中我有一个jquery函数来获取click事件。
$("#okcad1").click(function()
{
alert('hello world');
}
但这不起作用......事件不会发生......
有人可以帮助我吗?
问候!
Rafael S。
答案 0 :(得分:4)
使用event delegation
$(document).on("click" , "#buttons_insert1 #okcad1" , function()
{
alert('hello world');
});
答案 1 :(得分:2)
您需要事件委派,因为您在加载DOM后附加了它。为此使用jQuery.on
$("#buttons_insert1").on('click', '#okcad1', function() {
alert('hello world');
}
只有click
将事件绑定到代码执行时DOM中存在的元素,因此您需要事件委派技术。