为什么这个jquery不会立即触发

时间:2011-02-02 20:38:32

标签: jquery triggers window width

基本上我有这个jquery设置和第一部分if语句工作。但对于那个带有工具提示的人来说,它并没有完全按计划进行。

以下是代码:

$(window).resize(function(){
        if ($(window).width() > 1200) {
            if (!$('#largeS').length) {
                $('head').append('<link rel="stylesheet" type="text/css" id="largeS" href="http://imgstr.thefinishedbox.com/css/large.css" />');
                if ($.browser.msie && (jQuery.browser.version > 6.9999) && (jQuery.browser.version < 7.9999) ) { //IE7
                    $('head').append('<link rel="stylesheet" type="text/css" id="ie7Large" href="http://imgstr.thefinishedbox.com/css/ie7Large.css" />');
                }
            }
        }
        else {
            $('#largeS').remove();
            if ($.browser.msie && (jQuery.browser.version > 6.9999) && (jQuery.browser.version < 7.9999) ) { //IE7
                $('#ie7Large').remove();
            }
        }
        if ($(window).width() > 1024) {
            if(!$('#sidebar .tip').hasClass('vertical')) {
                $('#sidebar .tip').addClass('vertical');
            }
        }
        else {
            $('#sidebar .tip').removeClass('vertical');
        }
    }).trigger('resize'); 

侧边栏提示在浏览器加载时不会触发,因此即使它的窗口宽度大于1024,也不会添加垂直类。但它适用于加载后更改窗口大小。

不确定原因,有什么帮助吗?

编辑:这是实时版本:http://tfbox.com - 工具提示在热门帖子中。

2 个答案:

答案 0 :(得分:1)

为什么不尝试这个:

function resizeWindow() {
        if ($(window).width() > 1200) {
            if (!$('#largeS').length) {
                $('head').append('<link rel="stylesheet" type="text/css" id="largeS" href="http://imgstr.thefinishedbox.com/css/large.css" />');
                if ($.browser.msie && (jQuery.browser.version > 6.9999) && (jQuery.browser.version < 7.9999) ) { //IE7
                    $('head').append('<link rel="stylesheet" type="text/css" id="ie7Large" href="http://imgstr.thefinishedbox.com/css/ie7Large.css" />');
                }
            }
        }
        else {
            $('#largeS').remove();
            if ($.browser.msie && (jQuery.browser.version > 6.9999) && (jQuery.browser.version < 7.9999) ) { //IE7
                $('#ie7Large').remove();
            }
        }
        if ($(window).width() > 1024) {
            if(!$('#sidebar .tip').hasClass('vertical')) {
                $('#sidebar .tip').addClass('vertical');
            }
        }
        else {
            $('#sidebar .tip').removeClass('vertical');
        }
    }

$(function() {
   resizeWindow();
   $(window).resize(resizeWindow);
}

答案 1 :(得分:0)

function adjustStyle(width) {
        width = parseInt(width);
        if (width > 1024) {
            $('#sidebar .tip').addClass('vertical');
        } else {
           $('#sidebar .tip').removeClass('vertical');
        }
    }

    $(function() {
        adjustStyle($(this).width());
        $(window).resize(function() {
            adjustStyle($(this).width());
        });
    });