2012-07-19 59 views

回答

0

这解决了问题,

只是确保chzn,选择是你选择的ID 。

chzn降将用户后保持打开点击一个选项:

 $('#chzn-select').change(function(event) 
     { 
      $('.chzn-drop').css('left', 0); 
     }); 
+0

这是错误的,因为它没有将”激活“类设置为Chosen的标记。 Techfoobar给了你一个很好的提示 - “点击”事件会更适合在这种情况下使用。 – biphobe 2013-05-08 09:20:36

+0

谢谢,但点击不起作用。尝试一下。 – Tzvi 2013-05-12 07:35:38

+0

它的工作原理,我刚刚检查过。请记住,您必须触发驻留在主容器中的锚点上的点击事件(.chzn-container> .chzn-single)。 – biphobe 2013-05-13 09:59:35

16

您可以通过执行打开通过JS一个选择选择框:

$('#<id-of-your-select>_chzn').trigger('mousedown'); 

其中<id-of-your-select>是你<select>元素的id。

对于例如:如果你的<select>元素就像<select id="foo" ...>,那么上面的代码将变为:

$('#foo_chzn').trigger('mousedown'); 
+0

感谢大家好,对我来说这并不工作: <选择name = “chzn-选择[]” ID = “chzn,选择” 数据占位符= “”style =“width:350px;方向:rtl“multiple” class =“chzn-select-create-option chzn-rtl”tabindex =“8”> '#chzn-select_chzn')。trigger('mousedown'));“value =”ClicktoOpen“> – Tzvi 2012-07-19 10:31:07

+0

非常感谢,我一直在努力弄清楚这个问题的真相 – anataliocs 2014-03-31 19:44:39

+0

你真是太棒了! – 2015-06-03 02:14:52

2

@ tzvi的答案是有价值的在你试图触发选择的事件,以便它选择后保持打开状态(IE:一次做多个选择)。请允许我这个扩展位(更新选择1.0,顺便说一句):

$('#selectbox').change(function() { 
    $('#selectbox_chosen .chosen-drop').css('left', '0'); 
}); 

$('html').click(function() { 
    $('#selectbox_chosen .chosen-drop').css('left', ''); 
}); 

$('#selectbox_chosen .chosen-drop').click(function(e) { 
    e.stopPropagation(); 
}); 

本质上,它迫使选择下拉留通过覆盖一些CSS由“积极”级通常是开启到位。然后我们有几个点击事件,如果你点击下拉以外的任何地方,就会撤消这个事件。为我完美工作。

编辑: 顺便说一句,如果你真的想要触发下降通过JS下来,用获选1.0的API:

$('#selectbox').trigger('chosen:open') 

在原来的问题的情况下,这将让你打开该框或在选择之后重新打开框。但是,选择后(但不关闭一会儿),它不会保持打开盒子。

4

您可以将以下两行添加到您的代码中,它将保持您的选择始终打开。它为我工作。

list_start是您选择的元素ID。

("#list_start").trigger('chosen:open'); 
$('.chosen-drop').css('left', 0); 
1

在更新的Chosen jquery plugin以下工作正常与stopPropagation。

$("#selectbox").trigger("chosen:open"); \t \t \t 
 
event.stopPropagation();

$(document).ready(function() { 
 
    $("#selectbox").chosen({}); 
 
    $("button").click(function() { 
 
    $("#selectbox").trigger("chosen:open"); 
 
    event.stopPropagation(); 
 
    }); 
 
});
#selectbox { 
 
    width: 140px 
 
}
<link href="http://harvesthq.github.io/chosen/chosen.css" rel="stylesheet" /> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="http://harvesthq.github.io/chosen/chosen.jquery.js"></script> 
 

 

 
<select id="selectbox"> 
 
    <option val="option1">Option 1</option> 
 
    <option val="option2">Option 2</option> 
 
    <option val="option3">Option 3</option> 
 
    <option val="option4">Option 4</option> 
 
    <option val="option5">Option 5</option> 
 
    <option val="option6">Option 6</option> 
 
</select> 
 

 

 
<button>Trigger Chosen</button>

8

这是很奇怪,但我觉得答案是使用超时

它在某种程度上NEET超时第一 也许是因为我的元素被克隆 希望有用fo -R其他

setTimeout(function(){ firstElement.trigger("chosen:open"); }, 100); 
+0

setTimeout是为我工作的。 – HischT 2016-03-14 16:14:03

相关问题