我创建了一个div,点击后会弹出一个彩色框,按钮“是”和“否”。:
var Abutton = document.createElement("div");
Abutton.className = "Abutton";
Abutton.onclick = function () {
new Messi(
'Are you sure you want to close your job?',
{
title: 'Are you sure?',
buttons: [
{id: 0, label: 'Yes', val:'Y' , class: 'deleteJob'},
{id: 1, label: 'No', val: 'N', class: 'cancelAction'}
]
}
);
};
Abutton.title = "Closed?";
Abutton.appendChild(document.createTextNode("Close Job"));
li.appendChild(Abutton);
“是”按钮与下面的此功能相关联。但是当我点击时,没有任何反应。日志语句也未显示。
$(".deleteJob").click(function(){
deleteJob();
console.log("heelo");
});
为什么不起作用?
答案 0 :(得分:0)
不确定仅基于此代码,但deleteJob
按钮是动态添加的,并且在您添加click事件时可能不存在。您应该在父元素上使用事件委托。根据您的代码,这是li
元素。如果它是<ul>
的一部分,可能会将click事件放在其上,如下所示:
$(function(){
$('ul').on('click','.deleteJob', function(){
deleteJob();
console.log('hello');
});
});
同样,在没有看到其余代码的情况下,不是100%确定。但无论哪种方式,事件代表团都是可行的方式。