在 event.preventDefault() 之后重新启用按钮默认值
Reenable button default after event.preventDefault()
我的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>
相关文章:
- 我的shareService在angular 2中发送值工作正常,但当我渲染我的另一个组件时,会获得默认值
- jquerydatetimepicker日期和时间应在框默认值中,而无需单击框
- 如果值为空,如何设置输入的默认值?jQuery
- 骨干模型默认值-todos.js示例中不必要的代码
- jquery日期选择器年份范围默认值
- Html5输入属性的默认值,如最小值、最大值、大小等
- 根据两个下拉列表的默认值禁用按钮
- 如何创建具有默认值的JavaScript对象字段?(AngularJS模型相关)
- Angularjs-设置不带ng选项的select的默认值
- jQuery Datepicker从日期开始设置默认值
- 如何设置浏览器打开的文件对话框的文件名(一些默认值)
- JQuery BlockUI鼠标加载光标没有't在Google Chrome中返回默认值
- Selectize选择默认值
- 在KeystoneJS中为Types.Money设置默认值
- 是否可以同时为一个元素的所有事件指定阻止默认值
- 防止在IE7中按回车键时出现默认值
- 在 event.preventDefault() 之后重新启用按钮默认值
- 如何在 jquery 中再次启用防止默认值
- 如果至少有一个输入具有值或某个选择更改了默认值,则启用/禁用切换按钮
- jQuery复选框启用/禁用文本输入和添加/删除默认值