解开"点击" for" onclick"属性

时间:2014-05-22 15:35:10

标签: jquery html onclick javascript

我有以下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

1 个答案:

答案 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...
    }
});