2014-03-03 74 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”,你只是删除呼叫,触发(“点击”)。

相关问题