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

Reenable button default after event.preventDefault()

本文关键字:启用 默认值 新启用 按钮 之后 event preventDefault      更新时间:2023-09-26

我的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,而无需再次手动单击按钮

你可以

试试这个。

disableButton = function () {
    $("#target").off("click");
};
enableButton = function() {
    $('#target').on("click", clickevent);
    $('#target').click();
};

其中clickevent是单击按钮时将调用的方法。

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

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

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

试试这个:

$('#enDis').on('click', function() {
  $('#myBtn').prop('disabled', function() {
    return !this.disabled;
  });
});
$('#myBtn').on('click', function() {
  alert('It is enabled!');
});
<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>