javascript - 如何让禁用的按钮在单击时执行某些操作? (JS)

标签 javascript jquery button

所以我有这段代码:

var delete_disabled = (parseInt(row.attr("data-state"), 10) === serverVars.obligationStateNotStarted) ? '' : 'disabled="disabled"';
        newHtml += "<button class=\"delete small\"" + delete_disabled + " title=\"" + labelDelete + "\"><i class=\"icon-trash\"></i></button>";

它检查是否满足某个条件,如果满足,则禁用该按钮,但是一旦禁用该按钮,我希望单击它时仍然会发生一些事情吗?我已经尝试了我能想到的一切,并希望得到一些建议。 预先感谢:)

最佳答案

除了单击禁用按钮时实际触发事件之外,您还可以在禁用按钮前面添加一个虚拟元素,并在该元素上添加与禁用状态关联的监听器。例如,

http://jsfiddle.net/FN45M/

js

$(document).ready(function () {
/*this click listener could also be added as part of the disableButton function.*/
    $(document).on('click', '.click-div', function () {
        console.log('clicked');
        alert('clicked');
    });

    disableButton($('button'));
    //enableButton($('button'));

});

function disableButton($el){
    var wrapper = $el.wrap("<div class='wrapper'>").parent();
    wrapper.css({"display":"inline","position":"relative"});
    var divClick = $("<div class='click-div'>");
    divClick.css({"position":"absolute",
                  "top":0,
                  "height":"100%",
                  "width":"100%"
                 });
    wrapper.append(divClick);

    /*divClick.on('click', function () {
        console.log('clicked');
        alert('clicked');
    });*/
}

function enableButton($el){
    $el.next(".click-div").remove();
    $el.unwrap("<div class='wrapper'>");
    $el.prop("disabled",false);
}

html

<button disabled>test</button>

关于javascript - 如何让禁用的按钮在单击时执行某些操作? (JS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20686233/

相关文章:

javascript - 使用 jquery 将下拉值标记为选中

javascript - 尝试在 Canvas 上创建随机像素时了解非随机输出

javascript - 如何使 Angular 显示为空 <p> 标签?

javascript - 如何使用 jquery 设置多个 CSS 显示属性值

java - 使用 selenium webdriver 选择日历按钮

javascript - 使用 window.open() 方法在打印预览页面中添加 javascript

javascript - 使用 phantomjs 填充文本字段,不起作用

javascript - 在 Angular DOM 操作后执行 Javascript

javascript - Ajax jquery 与 Post 类形式

jquery - 选择后更改按钮的外观