为什么jQuery显示错误的页面?

时间:2012-05-22 08:04:02

标签: jquery html

这是jQuery:

$(document).on('change', '.ui-slider-switch', function () {
    if ($(this).val() == 'on') {
        $("#content1").hide();
        $("#content2").show();
    }
    else {
        $("#content1").show();
        $("#content2").hide();
    }
});

我的HTML:

<div id="switch" data-role="fieldcontain">      
    <select name="slider" id="flip-a" data-role="slider">
        <option value="off"></option>
        <option value="on"></option>
    </select>   
</div>

在我的网站中,我有时会使用自定义网址(并使用$ _GET从中获取数据)。 当页面重新加载时,我总是收到$("#content2").show();而不是$("#content1").show();

2 个答案:

答案 0 :(得分:0)

尝试更改:

$(document).on('change', '.ui-slider-switch', function () {

为:

$(document).on('change', 'select[name=slider]', function () {

答案 1 :(得分:0)

您确定事件处理程序中的代码是否正在运行? (即您是否使用alertconsole.log或类似的东西对其进行了测试?)如果页面刚刚重新加载,并且没有人(人或代码)更改了选择的值,则处理程序原则上不会运行

我建议在页面(或元素)加载完成后手动触发change事件,这样就会检查/双重检查正确的值:

$('.ui-slider-switch').trigger('change');

确保在您刚刚完成重新加载页面后运行代码。