2013-02-19 209 views
2

我一直在使用select2插件一段時間,直到現在它已經完美。select2搜索不起作用

我有3個選擇正在加載的數據和運作良好,多選擇那些彈出裏面的頁面。他們看起來不錯,但你不能在搜索欄上書寫。在主頁搜索運作良好,所以我也弄不清是什麼問題..

我與blockUI插件彈出workign。我試過z-index,在blockUI函數的回調中銷燬並啓動插件,但沒有任何工作,我不知道爲什麼。

代碼:

<!doctype html> 
<html> 
<head> 
<title>ff</title> 
<link type="text/css" rel="stylesheet" href="http://cdn.jsdelivr.net/select2/3.2/select2.css" /> 
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> 
<script type="text/javascript" src="http://cdn.jsdelivr.net/select2/3.2/select2.js"> </script> 
<script type="text/javascript" src="http://xiao3meng.googlecode.com/files/jquery.blockUI.js"></script> 
<script> 
    $(document).ready(function() { 
     $(".startselect").select2(); 

     $('#clickstartpopup').click(function() { 
      $.blockUI({ 
       message: $('#popblock'), 
       onBlock: function() { 
        $(".popupselect").select2(); 

       } 
      }); 
     }); 

    }); 
</script> 
</head> 
<body> 
<div id="maincontent1" class="maincontent mywebsitepage"> 
    <select class="startselect" id="merchantList"> 
<option value="volvo">Volvo</option> 
<option value="saab">Saab</option> 
<option value="mercedes">Mercedes</option> 
<option value="audi">Audi</option> 
</select> 
</div> 
<div style="clear: both; height: 15px;"></div> 
<span id="clickstartpopup" style="cursor: pointer;color:red;" >click me!</span> 
<div style="height: 300px;background-color: red;display:none;" id="popblock" > 
<select class="popupselect"> 
<option value="volvo">Volvo</option> 
<option value="saab">Saab</option> 
<option value="mercedes">Mercedes</option> 
<option value="audi">Audi</option> 
</select> 
</div> 
</body> 
</html> 


什麼建議嗎?

+0

我一直有同樣的問題。你有沒有找到解決辦法? – erikcw 2013-08-09 18:49:22

回答

1

同樣的問題在這裏。 我在tooltip(qtip2)中加載select2,當點擊包含在jquery.fullCalendar中的事件時打開。 fullCalendar本身顯示在div中,用作覆蓋我的應用程序的blockUI消息。

本身的選擇搜索欄不能正常工作。 使用jQuery blockUI版本2.57.0(2013年2月17日),我可以做的選擇2工作搜索領域在後臺應用程序攔截的元素和疏通它馬上預期:奇怪的是

$("#someDivInTheBg").block(); 
$("#someDivInTheBg").unblock(); 

,該變通辦法不再適用於jQuery BlockUI版本2.64.0(18.07.13)。 我無法弄清楚發生了什麼,我可以找到如何跟蹤這個問題,除了它明顯在blockUI/select2交互中。有時,當我嘗試用他的顯示右後選擇2搜索領域,第一個字符我輸入的是它的鎖定之前顯示在搜索領域

注意。 由於在打開qtip時沒有blockUI加載,因此可能會由select2代碼觸發問題。

還要注意的是,問題不與其他選擇2出現,坐落在後臺應用程序(而不是blockUI消息中)

我會試着在blockUI報告該問題,並選擇2 githubs

*編輯:解決方案* 那麼,問題其實很簡單。 (選擇2容器被放置在原始選擇旁邊(或者當處理動態加載的數據時隱藏輸入) - select2-drop放在標籤前面(注意這個元素是獨特的,當你打開它時用於你的每個select2) 輸入字段.select2-input,select2-drop的子節點。

BlockUI,默認情況下禁用,就像通過malsup,它的創造者,在文檔中表示不位於其消息元素鍵和鼠標事件:

//啓用如果你想鍵和鼠標事件對於被阻止 bindEvents內容被禁用:真那麼,

,當你初始化上位於blockUI消息中的一個領域,選擇2,一切都只是按鍵和鼠標事件好嗎在輸入無效。 select2-input字段不在blockUI消息中,但出口靠近你的HTML文檔的端側...

的解決方案是如此簡單:初始化你的blockUI與選項:

bindEvents: false, 

要注意的是可以保持或採取重點blockUI元素之外的元素那麼,因爲鼠標和鍵盤事件不會被中和。

可能會發現特定於blockUI中select2體系結構的一些改進可以使其更清晰。