我有以下html元素:
<span class="btn btn-mini btn-primary row-remove" onclick="someFunction(param1, param2)">
<i>Remove</i>
</span>
当我做其他事情时,我正在禁用页面上的那些按钮:
$(".row-remove").attr("disabled", true);
问题是,如果你点击禁用按钮,它仍然会触发&#34; onclick&#34;,这会导致一个大问题(这是按钮被禁用的原因)。
有没有办法&#34;禁用&#34; onclick事件也是?我尝试过解除绑定&#34;点击&#34;但是除了它没有工作(它是onclick,而不是bind())。
感谢。
Best,Gary
答案 0 :(得分:1)
只有表单元素才能具有disabled
属性。打开和关闭点击事件可能会变得复杂。我建议您在元素中添加data
属性以显示元素的状态。像这样:
$('.row-remove').data('disabled', true);
function someFunction(param1, param2) {
if (!$('.row-remove').data('disabled')) {
// element is not disabled, continue on...
}
}
我还建议使用javascript附加click事件以保持更好的关注点分离:
<span class="btn btn-mini btn-primary row-remove" data-param1="param1" data-param2="param2">
<i>Remove</i>
</span>
$('row-remove').click(function() {
var $el = $(this);
var param1 = $el.data('param1'); // = 'param1'
var param2 = $el.data('param2'); // = 'param2'
if (!$el.data('disabled')) {
// element is not disabled, continue on...
}
});