我有確切的問題,昨天,但做了一些[R & d後,我得到了一個非常方便的修正這一點。
默認情況下,此腳本隱藏了搜索文本框上模糊事件的結果div(Suggestion List),因此只要我們單擊結果div的滾動條焦點從輸入元素&結果div就會關閉。所以我在controls.js中做了一個小的編輯來改變腳本的行爲,所以現在結果div close方法不會調用input元素的blur(focus out),而是觸發除了文本輸入元素之外的文檔的點擊。
爲了您的方便,我已將編輯後的controls.js here。
如果您想知道JS文件中發生了什麼變化,請點擊此處;
向文檔添加了事件偵聽器。就在這條線下面
「Event.observe(this.update,」keypress「,this.onKeyPress.bindAsEventListener(this));」
Event.observe($(document), "mouseup", this.onMouseup.bindAsEventListener(this));
增加了一個新的onMouseup方法。
onMouseup: function(event) {
if(!this.hasFocus) {
this.hideTimeout = setTimeout(this.hide.bind(this), 250);
this.hasFocus = false;
this.active = false;
}
},
修改的onblur方法(註釋掉塊雙線)
onBlur: function(event) {
//this.hideTimeout = setTimeout(this.hide.bind(this), 250);
//this.active = false;
this.hasFocus = false;
}
我希望這將解決您的問題。
感謝
Vinod Kumar
感謝@Vinod庫馬爾。但它仍然可以防止在鼠標在其外部點擊時使用建議關閉div。但是,謝謝! – Cheluis
我也使用過這個解決方案,感謝@Vinod Kumar,在Chrome和IE上測試過。它確實爲我關閉了div。 – MartinC
hm,但問題是clickEvent停止工作。我正在使用自動完成的值作爲服務調用的輸入參數。如果我在OnBlur()中註釋掉兩行,它會停止工作,所以更糟糕。如何解決這個問題? – MartinC