2013-02-19 116 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体系结构的一些改进可以使其更清晰。