event.preventDefault()后重新启用按钮默认值

时间:2016-02-12 04:01:42

标签: javascript jquery html

我的html中有一个这样的按钮:

<button id="target" url="foo.com">Button Text</button>

然后我有一个方法来禁用它:

disableButton = function () {
    $("#target").click(function (event) {
        event.preventDefault();
    });
};

我有第二种方法,我在disableButton方法之后调用它来重新启用它:

enableButton = function() {
    $('#target').unbind('click');
    $('#target').bind('click');
    $("#target").trigger('click');
}; 

问题是,当我调用enableButton()时,它不会触发按钮单击。它只有在我调用enableButton()方法然后手动单击按钮时才有效。任何人都可以告诉我如何使enableButton()方法在调用时触发按钮单击?

基本上工作流程应该是:

1)点击#target

2)#target被禁用,直到我们从某个外部来源获得响应

3)收到回复

4)触发#target的按钮单击而无需再次手动点击按钮

2 个答案:

答案 0 :(得分:1)

你可以试试这个。

clickevent

其中sudo pecl install mongodb是单击按钮时将调用的方法。

PS。更正您的代码(代码中的引号)。 jQuery不支持unicode。

答案 1 :(得分:1)

  

如果您on/off按钮,则不需要click个事件,enable/disable个事件将无法调用。

使用.prop('disabled', callback) 为每个匹配的元素设置一个或多个属性。 [Ref]

试试这个:

&#13;
&#13;
$('#enDis').on('click', function() {
  $('#myBtn').prop('disabled', function() {
    return !this.disabled;
  });
});

$('#myBtn').on('click', function() {
  alert('It is enabled!');
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<button id='myBtn'>Main Button</button>
<button id='enDis'>Enable/Disable</button>
&#13;
&#13;
&#13;