我有一些基本的HTML即
<select id="list1">
<option value="1">Item1</option>
<option value="2" selected="selected" >Item2</option>
</select>
<select id="list2">
<option value="3">Item3</option>
<option value="4">Item4</option>
</select>
默认情况下,我将#list2隐藏起来并在将#List1更改为选项值2时显示...
$('#list2').hide();
$('#list1').on('change', function () {
if ($(this).val() == '2') {
$('#list2').parent('div').hide();
} else {
$('#list2').parent('div').show();
}
});
我想知道的是,如果页面加载时动态SELECTED值为“2”,我该如何显示列表2。即不是在事件之后,而是在事件之前。
提前感谢您的任何帮助/建议。 我想知道的是,我怎么能
答案 0 :(得分:1)
您可以在页面加载上触发更改事件
$("#list1").trigger("change");
答案 1 :(得分:1)
工作示例:http://jsfiddle.net/Gajotres/uX3NL/
很少有人注意到,data-role =“none”被添加到第二个选择中。即使display设置为none,它也会阻止jQuery mobile显示它。这就是我删除该属性的原因,然后显示选择并使用函数 selectmenu 重新设置它。
Javascript:
$(document).on('pagebeforeshow', '#index', function(){
if($('#list1').find(":selected").val() == 2) {
$('#list2').removeAttr('data-role').show().selectmenu();
}
});
CSS:
#list2 {
display: none;
}
HTML:
<div data-role="page" id="index">
<div data-theme="a" data-role="header">
<h3>
First Page
</h3>
<a href="#second" class="ui-btn-right">Next</a>
</div>
<div data-role="content">
<select id="list1">
<option value="1">Item1</option>
<option value="2" selected="selected">Item2</option>
</select>
<select id="list2" data-role="none">
<option value="3">Item3</option>
<option value="4">Item4</option>
</select>
</div>
<div data-theme="a" data-role="footer" data-position="fixed">
</div>
</div>
答案 2 :(得分:0)
我使用以下方法让它发挥作用。 $( '#列表2')隐藏();
var selVal = $("#vlist1 :selected").val() ;
if (selVal == 2) {
$('#list2').show();