2014-03-03 72 views
0

比方說,我希望選擇C選項時,我加載頁面散列值C附加到URL(例如http://www.example.com/#C)。如何使用jQuery預先選擇twitter bootstrap下拉選項?

我知道如何從散列中獲取值,但我在選擇該選項時遇到了問題。

我嘗試以下使用jQuery:

$('.dropdown ul > li > a:contains("C")').click(); 
$('.dropdown ul > li > a:contains("C")').trigger('click'); 

但在下拉菜單中選擇的值不會改變

<div class="dropdown open" style="float:none;margin-top:5px;" id="select-group-0"> 
    <input type="hidden" value="A" name="your-category" id="undefined" class="wpcf7-form-control wpcf7-select wpcf7-validates-as-required"> 
    <a id="contactform_type" class="dropdown-toggle dropdown-toggle-filter fp_input contactform_dropdown" data-toggle="dropdown" href="#">A</a> 
    <ul class="dropdown-menu dropdown-menu-filter"> 
    <li><a tabindex="-1" data-value="A">A</a></li> 
    <li><a tabindex="-1" data-value="B">B</a></li> 
    <li><a tabindex="-1" data-value="C">C</a></li> 
    </ul> 
</div> 
+1

它很可能是您的點擊觸發器在引導應用之前觸發。檢查它是什麼時候被調用的,如果需要的話延遲。另外,你不需要'.trigger('click')'只需調用'.click()'不帶參數就是一樣的。 – hammus

回答

1

我不知道無論您正在試圖改變選擇下拉列表中的值爲「C」,或者只是在下拉列表中突出顯示「C」...假設您嘗試「將下拉列表中的所選值更改爲C」,則可以使用類似的方式。 。

/* update dropdown text when item clicked */ 
$(".dropdown-menu li a").click(function(){ 
    var selText = $(this).text(); 
    $(this).parents('.dropdown').find('.dropdown-toggle').html(selText); 
}); 

/* preselect value */ 
var selectedValue = "C"; 
$('.dropdown ul > li > a:contains("'+selectedValue+'")').parent('li').addClass("active"); 
$('.dropdown ul > li > a:contains("'+selectedValue+'")').trigger('click'); 

演示:http://www.bootply.com/118698

如果你只嘗試突出在下拉列表中的「C」,你只是刪除呼叫,觸發(「點擊」)。

相關問題