2012-11-14 96 views
0

我有一個。對(「點擊」 ......事件對我的選擇將打開一個對話框jQueryUI的:對話框打開導致選擇列表關閉

的問題是,對話的開幕關閉選擇。用戶只需點擊

如何停止該關閉選擇列表中的我在FF16測試和jQueryUI的1.9

這是問題的一個例子,的jsfiddle:?http://jsfiddle.net/HqfvP

$(function(){ 
    $('#theDialog').dialog({ 
     autoOpen : false, 
     resizable : false, 
     stack : false, position: ['right','center'] 
    }); 
    $("#theSelect").on("click", function(){ 
     $(".ui-dialog-content").dialog("close");//closes all open dialogs 
     $('#theDialog').dialog("open"); 
    }); 
}); 

回答

1

選擇選項關閉的原因是.dialog("open")自動將焦點設置爲對話框上的元素。不想將重點放在新打開的對話框上是一種不尋常的用例,因此您需要進行一些自定義:http://jsfiddle.net/HqfvP/3/

鏈接的代碼看起來可能很多工作,但實際上並非如此太難拿出:從jQuery UI source

$.widget("ui.my_dialog", $.ui.dialog, { 
}); 
  1. 改變所有的.dialog引用到.my_dialog
  2. 複製open功能到我的NE: 1.擴展jQuery的對話是這樣w對象。
  3. (可選)open重命名爲open_nofocus(或其他)並更新open的用法。
+0

非常好。如果可以的話,我會給2票。 –

+0

.dialog是否必須重命名?它會是一樣好,如果不是乾淨的,只需在現有的對話框中添加一個「open_nofocus」 –

+1

至少,這似乎工作:http://jsfiddle.net/HqfvP/4/我的個人偏好是知道我沒有使用標準的jQuery UI小部件。 –

相關問題