输入被禁用时是否有事件?

时间:2011-08-17 15:57:54

标签: javascript jquery html events input

对于输入扩展脚本我正在制作我需要一个输入来告诉我何时/是否被禁用。也就是说,当设置disabled参数时。

是否有此事件?

如果没有,我将如何模仿这种行为?

我也在使用jQuery

3 个答案:

答案 0 :(得分:3)

理想情况下,您需要锁定的任何事件(并且不是用户事件 - 单击鼠标悬停等)应该在代码中以编程方式触发,而不是轮询实际的DOM,这是代码产生的最终表示。

DOM变异事件得不到很好的支持和AFAIK are being deprecated

从您所说的内容来看,最好的办法是检查<input>是否在启动扩展程序/插件时被禁用,然后启用插件/扩展程序用户通过您自己的API禁用输入,这意味着您可以知道它何时发生。

一个非常原始的例子是为jQuery创建自己的disable方法:

jQuery.fn.disable = function() {
    return this.each(function(){
        $(this).attr('disabled', true).triggerHandler('disable');
    });
};

// E.g.
var input = jQuery('input#foo');
input.bind('disable', function(){ alert('Foo Disabled!'); });
input.disable();

您可以看到我们为disable方法中的每个元素触发了我们自己的事件。这只是一个例子;我并不是真的建议这样做 - 尝试将所有内容保存在您自己的插件/扩展名的命名空间下。

答案 1 :(得分:0)

恐怕没有像这样的内置事件。但是,使用触发器和绑定,您可以创建自己的事件。 Custom events in jQuery?

答案 2 :(得分:0)

我希望使用.attr()你可以找到它的禁用