2013-10-17 23 views
2

在JavaScript上的編程值的變化,我需要的時候一定選擇元素的值更改爲任何原因,包括編程方式來檢測。JavaScript的 - 如何檢測一個select元素(下拉列表)

當其他JavaScript以編程方式更改值時,onchange事件僅在用戶手動更改所選值時觸發,而非

這是一個帶有各種插件組件的網站,我們不想破解(有些情況下不能破解,因爲代碼駐留在其他網站上)。 因此,只要有程序更改就觸發更改事件不是一種選擇。我需要實際監控選擇,監聽它的價值變化。

這可能嗎?我沒有找到辦法。

有沒有可能我可以使用一些庫來經常查詢值查找變化?或者以其他方式?

+3

當程序改變數值時,觸發'change'事件。類似'.val('something')。change();' –

+2

從這個答案中使用object.watch實現http://stackoverflow.com/questions/1759987/listening-for-variable-changes-in-javascript-或-jquery – Udan

回答

2
var targetSelect = $('appropriate selector'); 
var lastVal = targetSelect.val(); 

setInterval(function() { 
    var newVal = targetSelect.val(); 
    if(newVal !== lastVal) { 
     // it changed, fire an event or process it 
    } 
    lastVal = newVal; 
}, intervalSpacing); 

傳遞給'intervalSpacing'的值越低,花費的CPU時間就越多,但越早意識到它已更改。調整謹慎。

+0

這個工程!使用500對我來說效果很好。 –

+0

糟糕;不,它沒有工作。出於某種原因,它沒有檢測到程序變更。 –

相關問題