2

我有一些基本的 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();
    }
    });

我想知道的是,如果页面加载时动态选择的值为“2”,我该如何显示列表 2。即不是在事件之后,而是在事件之前。

提前感谢您的任何帮助/建议。我想知道的是,我该怎么做

4

3 回答 3

1

Working example: http://jsfiddle.net/Gajotres/uX3NL/

Few things to notice, data-role="none" is added to second select. It will prevent jQuery mobile from showing it even if display is set to none. That's why I am removing that attribute, then showing the select and restyling it with a function 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>  
于 2013-04-16T08:29:52.587 回答
1

您可以在页面加载时触发更改事件

$("#list1").trigger("change");
于 2013-04-16T02:21:39.170 回答
0

我使用以下方法使其工作。$('#list2').hide();

    var selVal = $("#vlist1 :selected").val() ;

     if (selVal == 2) {

     $('#list2').show();
于 2013-04-16T22:01:35.503 回答