1

jsbin 链接: http: //jsbin.com/axevid/2 <- 使用 Webkit 浏览器(Chrome 或 Safari)打开

当常规按钮被禁用时,所有事件也被禁用。我为自定义按钮创建了一个自定义标签(项目要求的一部分)。但是我怎样才能使它在按钮被禁用时禁用绑定事件并在启用后将它们恢复?

我正在使用 Javascript MVC。我想我看到了一个禁用事件的功能,但我忘记了它在哪里。

编辑:代码应该是一种插件,应该适用于所有自定义按钮。换句话说,我不想在每个绑定事件中包含 if 语句。有任何想法吗?谢谢。

4

3 回答 3

0

创建控件时,还需要为要阻止的事件添加事件侦听器("click"并且"keypress"可能)。然后,在处理程序中,event. stopImmediatePropagation()如果您想阻止其他人看到该事件,请调用。

例如:

btn.addEventListener("click", function(event) {
    if (btn.disabled) {
        event.stopImmediatePropagation();
    }
});
于 2012-03-21T19:23:01.340 回答
0

这将起作用:http: //jsbin.com/axevid/3

我在以下部分进行了更改:

$(document).delegate('abutton', 'click', function(e){
  if($(this).attr('disabled')){
    e.preventDefault();
    return;
  }
  alert("Custom button");

});
于 2012-03-21T19:23:48.960 回答
0

你的意思是(正如我从你的要求中理解的那样)

$(function() {
$("abutton").each(function() {
if($(this).attr("disabled")) {
e.preventDefault();
return;
});
});
于 2012-03-21T19:25:02.837 回答