禁用输入字段上的jQuery单击事件

时间:2015-07-28 07:30:59

标签: javascript jquery

我想在已停用的input上触发一个事件。我尝试了以下代码,没有发生任何事情 - 没有错误,即使只是没有发生。

$(document).on('click', '.select-row', function(e){
    ...
});

我该如何解决这个问题?

4 个答案:

答案 0 :(得分:2)

您无法触发任何鼠标事件,例如点击已禁用的HTML元素。替代方案是将元素包装在span或div中并对其执行click事件。

$("div").click(function (evt) {
  // do something
});​

另一个替代方法是使元素readonly而不是disabled,但请记住,jQuery没有默认的:readonly选择器。

答案 1 :(得分:0)

如果它适合您,您可以使用readonly代替disabled。然后,您可以轻松使用click事件。

Demo

答案 2 :(得分:0)

我们今天遇到了这样的问题,但是我们不想更改HTML。因此,我们使用mouseenter事件来实现这一目标

var doThingsOnClick = function() {
    // your click function here
};

$(document).on({
    'mouseenter': function () {
        $(this).removeAttr('disabled').bind('click', doThingsOnClick);
    },
    'mouseleave': function () {
        $(this).unbind('click', doThingsOnClick).attr('disabled', 'disabled');
    },
}, '.select-row');

答案 3 :(得分:-1)

如果您需要触发,请使用trigger()功能。

$('.select-row').trigger('click');