我正在动态创建一个表,在其中向每列添加onclick函数。
for (var x = 0; x < r.length; x++) {
//Setting the columns
if (i === 1) {
var headerCell = document.createElement("TH");
headerCell.innerHTML = r[x];
headerCell.id = x;
headerCell.onclick = function () {
sortTable(this.id, name);
}
row.appendChild(headerCell);
}
}
在特定情况下,我想禁用onclick功能。这是代码,它可以正常工作。
$('#errorTable TH').prop("onclick", null).off("click");
,在另一种情况下,我想重新连接onclick函数。那是行不通的。我要启用原始功能。...
有什么想法吗?
答案 0 :(得分:0)
创建表和添加/删除事件的方式不容易维护。我也有一些建议:
i
中未定义。 使用jQuery添加删除事件监听器
首先定义您的处理函数:
var myClickHandler = function(){
// this is your click handler
alert('Yes!!!');
}
选择元素并分配给变量。在执行以下脚本时,<div id="clickable">Click Me!</div>
必须在DOM中。
var element = $('#clickable');
// assign event listener
element.on('click',myClickHandler);
// remove event listener:
element.off('click',myClickHandler);
请注意,您必须必须告知jQuery应该删除哪个处理程序。
答案 1 :(得分:0)
另一种方法是构建一个单击处理程序,以检查“终止开关”。
var tableClickable = true;
headerCell.onclick = function () {
if (tableClickable) {
sortTable(this.id, name);
}
}
//In a specific situation I want to disable the onclick function.
something.addEventListener('someEvent', function () {
tableClickable = false;
});
//and in another situation i want to reattach the onclick function.
something.addEventListener('someOtherEvent', function () {
tableClickable = true;
});