0

我有以下代码,如果在其中选择了某个选项,则会显示一个下拉列表

// Hide Dealer drop down list
$(".which_dealer").hide();
// if Dealer is chosen then show Dealer drop down list
$('#from_dealer').bind('change', function (e) { 
    if( $(this).val() == 9) {
        $('.which_dealer').slideToggle('slow');
    }
    else{
        $(".which_dealer").hide();
    }         
});

这很好用,但我还需要考虑用户重新访问此页面以对其进行编辑。因此,如果他们之前选择了此选项,则不应隐藏 .which_dealer 列表。

为此,我想编写一个在窗口加载时触发的 if 语句。我已经尝试过,但我不知道要使用什么功能,因此我有两次“加载”。请参阅下面的我的尝试。

// if Dealer was chosen chosen previously then show Dealer drop down list
$(window).load('load', function (e) { 
    if( $('#from_dealer').val() == 9) {
        $('.which_dealer').show();
    }
    else{
        $('.which_dealer').hide();
    }         
});
4

4 回答 4

2

尝试:

$(document).ready( function(){ /* 你的代码在这里 */ } );

于 2012-04-23T04:32:38.743 回答
0

如果您想保存用户之前访问网页的状态(例如他们之前是否在该页面中选择了一个选项),然后在他们下次访问时在网页中使用该状态,那么您有以下内容用于存储状态的选项,以便在不同的页面访问中可用:

  1. 饼干
  2. 本地存储
  3. 服务器上的存储

Cookie 在所有浏览器中无处不在,而且相当简单。它们可用于存储少量数据(通常小于 2k 字节)

本地存储非常易于使用,但仅在较新的浏览器中支持。

无论用户实际是谁,cookie 和本地存储都与特定计算机上的特定浏览器连接。

在服务器上存储某些内容通常代表已登录用户存储状态,然后无论用户在何处登录,该状态都可以用于该用户。

cookie 实现可能如下所示:

// cookie functions
function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name,"",-1);
}


$(document).ready(function() {

    // restore dealer state from previous cookie
    var lastDealerVal = readCookie("fromDealer");
    if (lastDealerVal) {
        $("from_dealer").val(lastDealerVal);
    }
    if (!lastDealerVal || lastDealerVal != "9") {
        $(".which_dealer").hide();
    }

    // if Dealer is chosen then show Dealer drop down list
    $('#from_dealer').bind('change', function (e) { 
        var val = $(this).val();
        createCookie("fromDealer", val, 60);
        if(val == 9) {
            $('.which_dealer').slideToggle('slow');
        }
        else{
            $(".which_dealer").hide();
        }         
    });

});
于 2012-04-23T04:36:09.107 回答
0

尝试

$(function(){ /* your code here */ } );
于 2012-04-23T04:37:37.323 回答
0

尝试这个

$(document).load(function (e) { 
    if( $('#from_dealer').val() == '9') {
        $('.which_dealer').show();
    }
    else{
        $('.which_dealer').hide();
    }         
});
于 2012-04-23T04:37:41.160 回答