对于我正在制作的输入扩展脚本,我需要一个输入来告诉我它何时/是否被禁用。也就是说,当设置了 disabled
参数时。
有这方面的事件吗?
如果没有,我将如何模仿这种行为?
我也在使用 jQuery
最佳答案
理想情况下,您需要锁定的任何事件(而不是用户事件 - 点击、鼠标悬停等)都应该在代码中以编程方式触发,与轮询实际 DOM 不同,实际 DOM 是代码生成的最终表示。
DOM 突变事件没有得到很好的支持,据我所知 are being deprecated .
从你所说的听起来,最好的办法似乎是检查 <input>
是否在启动您的扩展/插件时被禁用,然后使插件/扩展用户可以通过您自己的 API 禁用输入,这意味着您可以知道它何时发生。
一个非常原始的例子是创建您自己的 disable
jQuery 方法:
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
中的每个元素触发了自己的事件。方法。但这只是一个例子;我真的不建议这样做——尝试将所有内容都保留在您自己的插件/扩展的命名空间下。
关于javascript - 输入被禁用时是否有事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7095865/