jQuery如何在窗口加载时触发if语句

时间:2012-04-23 04:28:42

标签: jquery load

我有以下代码,如果在

中选择了某个选项,则显示下拉列表
// 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 个答案:

答案 0 :(得分:2)

尝试:

  

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

答案 1 :(得分:0)

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

  1. 缓存
  2. 本地存储
  3. 在服务器上存储
  4. Cookies在所有浏览器中无处不在,相当容易。它们可用于存储少量数据(通常小于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();
            }         
        });
    
    });
    

答案 2 :(得分:0)

$(function(){ /* your code here */ } );

答案 3 :(得分:0)

试试这个

$(document).load(function (e) { 
    if( $('#from_dealer').val() == '9') {
        $('.which_dealer').show();
    }
    else{
        $('.which_dealer').hide();
    }         
});