我最近更新了jquery ui及其自動完成插件 - 但是在新版本中,它不會讓我用鼠標單擊來選擇選項,而且必須使用上下箭頭。如何通過鼠標點擊重新啓用選擇?Jquery UI Autocomplete不允許用鼠標選擇選項
順便說一下新版本1.9.1,舊版本是1.8.2
我最近更新了jquery ui及其自動完成插件 - 但是在新版本中,它不會讓我用鼠標單擊來選擇選項,而且必須使用上下箭頭。如何通過鼠標點擊重新啓用選擇?Jquery UI Autocomplete不允許用鼠標選擇選項
順便說一下新版本1.9.1,舊版本是1.8.2
在我的例子鼠標選擇能力是由一個過時的第三方jQuery插件禁用。這個線程給了我一個什麼可能是錯誤的想法:http://forum.jquery.com/topic/autocomplete-click-to-select-item-not-working-in-1-9-1
我正在使用舊版本的jQuery驗證插件(https://github.com/jzaefferer/jquery-validation)。我一個接一個地關閉了一個插件,看看是哪個造成了這種不正當行爲。
感謝bubblez,爲我解決了這個問題,你已經爲我節省了幾個小時:) –
對我來說,事實證明,這是一個在主體內點擊stopPropagation()的呼叫,例如, $(「body」)。click(function(e){e.stopPropagation()};查找這樣的代碼並註釋掉stopPropagation()。 – Asmussen
Thanks,That fixed it –
最近的版本已經解決了這個問題。
只需從http://jqueryvalidation.org/更新到jquery.validate.js的最新版本即可。 例如下載微軟的Ajax的CDN(盜鏈歡迎) http://ajax.aspnetcdn.com/ajax/jquery.validate/1.13.1/jquery.validate.js
我有同樣的問題,即使使用的是最新版本的jQuery的UI當時1.11.4
檢查源代碼文件jQuery的ui.js我發現了一塊像這樣:
"click .ui-menu-item": function(event) {
var target = $(event.target);
if (!this.mouseHandled && target.not(".ui-state-disabled").length) {
this.select(event);
// Only set the mouseHandled flag if the event will bubble, see #9469.
if (!event.isPropagationStopped()) {
this.mouseHandled = true;
}
的問題是mouseHandled
VAR設置爲true
。但只有在event
傳播尚未停止的情況下才會發生。
因此,作爲解決方案,我定義我的自動完成這樣的:
$('.autocomplete').autocomplete({
source: ['value1','value2','value3','value4'], //my source
select: function(event, ui){
event.stopPropagation(); //the select event will work next time you click
//your logic comes here ...
}
})
它的工作對我來說,我希望它爲你的作品! =)
您仍然可以通過UI 1.9.1中的鼠標進行選擇。嘗試使用這裏的例子:http://jqueryui.com/autocomplete/你可以發佈一些代碼? – Elliott
嗨艾略特 - 演示工作正常,但在我使用插件的兩個頁面上,我無法用鼠標選擇。必須是某處的衝突。如果我有機會,我會看看是什麼導致它並提交作爲錯誤 – coalvilledave
你可以提供任何代碼? – Dom