0
以編程方式將單選按鈕設置爲checked = true不觸發更改事件。我怎麼知道單選按鈕是否被腳本檢查過?如何確定單選按鈕是否被第三方JavaScript設置爲checked = true?
見這個例子:http://jsfiddle.net/wykEx/7/
在Firebug的,沒有變化的事件記錄到控制檯,除非你手動點擊單選按鈕。
以編程方式將單選按鈕設置爲checked = true不觸發更改事件。我怎麼知道單選按鈕是否被腳本檢查過?如何確定單選按鈕是否被第三方JavaScript設置爲checked = true?
見這個例子:http://jsfiddle.net/wykEx/7/
在Firebug的,沒有變化的事件記錄到控制檯,除非你手動點擊單選按鈕。
做到這一點的一種方法是設置一個計時器並輪詢更改。當然,它可能不是最優雅的解決方案,但它應該足夠好,並且應該適用於所有瀏覽器。
這樣做的最大問題是,如果代碼過於頻繁地更改了輸入元素的checked屬性,那麼您可能會丟失一些轉換。
window.setInterval(function(){
var elem = $('twoRadioBtn');
if(elem.checked != elem.lastchecked)
{
console.log('TWO changed!');
elem.lastchecked = elem.checked;
}
}, 100); // poll every 100 ms.
感謝您的回答Miky。如果可以,我顯然希望避免投票。我希望有人會有另一種解決方案。我甚至嘗試過使用object.watch,但至少在Firefox中,似乎在checked屬性更改時不會觸發watch事件。 – rorsach
我不知道你是否能夠在所有瀏覽器中找到一致的解決方案 - 如果還有一種方法......祝你好運! –