2011-08-17 34 views
2

對於輸入擴展腳本我讓我需要一個輸入來告訴我什麼時候/如果它被禁用。也就是說,當它設置了disabled參數時。輸入被禁用時是否有事件?

是否有這樣的事件?

如果不是,我將如何模擬行爲?

另外我正在使用jQuery

+0

什麼將禁用'輸入'?這將是你的腳本的其他部分? – miki725

回答

3

理想情況下,你需要鎖定到任何事件(而不是用戶的事件 - 點擊鼠標懸停等)應在編程代碼中被解僱,而不是投票的實際DOM,這是您的代碼生成的最終表示形式。

DOM突變事件沒有很好的支持和AFAIK 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方法中的每一個元素。儘管這只是一個例子,我沒有真正提出這個建議 - 儘量將所有內容都放在你自己的插件/擴展名的命名空間下。

0

恐怕沒有像這樣的內置事件。但是,使用觸發器和綁定,您可以創建自己的事件。 Custom events in jQuery?

0

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

+0

發現它不是問題 - 檢測它何時發生變化。 –

相關問題