Jquery事件没有针对使用innerHTML在javascript中创建的按钮触发

时间:2014-12-05 13:19:41

标签: javascript jquery

我在网上搜索但不能做这项工作..

我在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。

2 个答案:

答案 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中存在的元素,因此您需要事件委派技术。