【发布时间】:2011-08-17 15:57:53
【问题描述】:
对于我正在制作的输入扩展脚本,我需要一个输入来告诉我它何时/是否被禁用。也就是说,当它设置了disabled 参数时。
有活动吗?
如果不是,我将如何模仿这种行为?
我也在使用 jQuery
【问题讨论】:
-
什么会禁用
input?它将成为您脚本的其他部分吗?
标签: javascript jquery html events input
对于我正在制作的输入扩展脚本,我需要一个输入来告诉我它何时/是否被禁用。也就是说,当它设置了disabled 参数时。
有活动吗?
如果不是,我将如何模仿这种行为?
我也在使用 jQuery
【问题讨论】:
input?它将成为您脚本的其他部分吗?
标签: javascript jquery html events input
理想情况下,您需要锁定的任何事件(不是用户事件 - click、mouseover 等)都应该在代码中以编程方式触发,而不是轮询实际的 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 方法中的每个元素触发了我们自己的事件。这只是一个例子;我真的不建议这样做 - 尝试将所有内容保存在您自己的插件/扩展的命名空间下。
【讨论】:
恐怕没有这样的内置事件。但是,使用触发器和绑定,您可以创建自己的事件。 Custom events in jQuery?
【讨论】:
我希望使用.attr()你可以发现它是否被禁用
【讨论】: