0

我有一个表,其中所有 td 都有一个 onlick 事件,问题是我想关闭它们以避免多次点击同一个 td,但稍后在脚本中我想再次打开它们

我有这样的事情:

$(tdidhere).prop("onclick",false);
$(tdidhere).prop("onclick",true);

问题是 onclick false 工作正常,但 onclick true 不会返回 onclick 事件

4

3 回答 3

1

更好的解决方案是持有一个属性来控制是否click可以为该元素处理事件。像这样的东西;

$('#myTd').click(function(e) {
    if ($(this).data('click-blocked')) {
        e.preventDefault();
    }
    else {
       $(this).data('click-blocked', true);

       // your click logic

       $(this).data('click-blocked', false);
    }
});

示例小提琴

于 2013-11-07T12:20:30.507 回答
0

设置它是true行不通的。您需要重新分配原始事件处理函数。

要停用:

// backup the original event handler
$(tdidhere).prop("onclick_backup", $(tdidhere).prop("onclick"));
$(tdidhere).prop("onclick",false);

要重新激活:

// restore the original event handler
$(tdidhere).prop("onclick", $(tdidhere).prop("onclick_backup"));
于 2013-11-07T12:21:06.083 回答
0

您应该使用$("id").bind('click',function(){...})$("id").unbind('click') 文档

于 2013-11-07T12:21:16.987 回答