對於我想要觸發的輸入有一個更改事件,除非您單擊列表項目。基本上,我調用一個函數來檢查這個字段的變化,但是也有一個自動完成腳本,它在你選擇的輸入下面添加一個無序列表,當你點擊一個項目來填充輸入字段時觸發這個變化(在添加新值之前基本上會觸發)。下面是javascript代碼:使用事件動作排除事件監聽
document.observe('dom:loaded',function() {
new Ajax.Autocompleter("search_input", "found_input", "someurl.jsp", {
afterUpdateElement: updateSelectedItem,
minChars: 2
});
if ($('search_input') != undefined) {
$('search_input').observe('change', function(e, el) {
if (e.explicitOriginalTarget.up(1) != undefined && e.explicitOriginalTarget.up(1).id != "found_input") {
checkFunction(this.value);
}
});
}
});
我加入了explicitOriginalTarget在那裏,因爲它工作在Mozilla瀏覽器,但是這不是一個跨瀏覽器的解決方案。我也嘗試添加一個變量,當你點擊一個無序列表項時,這個變量會被添加,但是在search_input字段後面會觸發它,因爲它在DOM之後。
感謝您的協助。
編輯:
這裏你可以看到一個小例子:http://jsfiddle.net/DfMYE/5/ 如果你開始輸入「測試」,你會看到一個下降的2個選擇了。當你點擊一個,它會觸發更改事件和選擇事件。如果我們點擊選擇列表,我想停止更改事件。
有沒有機會看到這在行動或小提琴? – dontGoPlastic 2012-07-10 05:06:04
剛剛發佈了鏈接。謝謝。 – fanfavorite 2012-07-10 15:39:54