2012-07-19 101 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

相關問題