是因为动态创建的元素没有绑定该函数的事件监听器。要解决这个问题,可以采取以下几种方法:
// 绑定事件监听器到父元素上
document.addEventListener('click', function(event) {
// 判断点击的元素是否是目标元素
if (event.target && event.target.matches('.dynamic-element')) {
onServerClick(event.target);
}
});
// 动态创建元素
function createDynamicElement() {
var element = document.createElement('button');
element.className = 'dynamic-element';
element.textContent = 'Dynamic Element';
document.body.appendChild(element);
}
// 点击事件处理函数
function onServerClick(element) {
console.log('Clicked on dynamic element:', element);
}
// 调用动态创建元素函数
createDynamicElement();
// 动态创建元素
function createDynamicElement() {
var element = document.createElement('button');
element.textContent = 'Dynamic Element';
element.addEventListener('click', function() {
onServerClick(element);
});
document.body.appendChild(element);
}
// 点击事件处理函数
function onServerClick(element) {
console.log('Clicked on dynamic element:', element);
}
// 调用动态创建元素函数
createDynamicElement();
无论采用哪种方法,都可以确保动态创建的元素能够正确触发绑定的事件监听器,从而使onServerClick函数起作用。
领取专属 10元无门槛券
手把手带您无忧上云