Jquery 事件不会为使用 innerHTML 在 javascript 中创建的按钮触发

Jquery event not firing for a button created in javascript with innerHTML

本文关键字:创建 javascript 按钮 innerHTML 事件 Jquery      更新时间:2023-09-26

>我在网上搜索,但无法完成这项工作。

我正在 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;

在索引中.html我有一个 jQuery 函数来获取点击事件。

$("#okcad1").click(function() 
{
   alert('hello world');
}

但这不起作用..事件不触发...

有人可以帮助我吗?

问候!

拉斐尔·

使用 event delegation

$(document).on("click" , "#buttons_insert1 #okcad1" , function() 
{
   alert('hello world');
});

你需要事件委托,因为你是在加载 DOM 之后附加它的。为此,jQuery.on

$("#buttons_insert1").on('click', '#okcad1', function() {
   alert('hello world');
}

只需click 就会将事件绑定到 DOM 中存在的元素,因此您需要事件委派技术。