如何使用自定义按钮标记模拟禁用按钮?

时间:2012-03-21 19:12:06

标签: javascript jquery html css javascriptmvc

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

禁用常规按钮时,也会禁用所有事件。我为自定义按钮创建了自定义标记(项目要求的一部分)。但是,如何在禁用按钮时禁用绑定事件并在启用后将其恢复?

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

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

3 个答案:

答案 0 :(得分:0)

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

例如:

btn.addEventListener("click", function(event) {
    if (btn.disabled) {
        event.stopImmediatePropagation();
    }
});

答案 1 :(得分:0)

这将有效:http://jsbin.com/axevid/3

我在以下部分做了更改:

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

});

答案 2 :(得分:0)

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

$(function() {
$("abutton").each(function() {
if($(this).attr("disabled")) {
e.preventDefault();
return;
});
});