0

我有以下简单的代码,但似乎不起作用。

jQuery(document).ready(
    function($)
    {
        $(window).resize(
            function()
            {
                setGrid($);
            }
        );

        setGrid($);
    }
);

function setGrid($)
{
    var contactContainer    =   $('#contactInfo');

    if(contactContainer.width() < 650)
    {
        console.log('Too short');
        $('.col_1_2').css(
            {
                width     :   '100% !important',
                margin    :   '0 !important'
            }
        );
    }
    else
    {
        console.log('Too long');

        $('.col_1_2').css(
            {
                width       :   '49% !important',
                marginRight :   '1% !important'
            }
        );

        $('.last').css(
            {
                width       :   '49% !important',
                marginRight :   '0 !important',
                marginLeft  :   '1% !important'
            }
        );
    }
}

因此,根据#containerInfo,当我调整窗口大小时,我会在 Chrome 控制台中收到两条消息,但 .col_1_2 没有更新。

我的代码有什么问题,我找不到吗?

注意:我的控制台打开了,我的控制台中没有收到任何错误消息。同样在我的控制台的“元素”选项卡中,我正在检查必须修改的元素,但我没有看到任何变化。通常应该在匹配的元素上添加“样式”属性。

亲切的问候

4

3 回答 3

3

尝试取消 !important... 您不需要它们,因为使用 .css 应用的样式会直接添加到元素中(覆盖任何其他可能适用的样式)。

于 2013-09-24T06:53:28.107 回答
2

试试这个,你缺少'(quote)属性。添加quote所有css然后它会工作。

$('.col_1_2').css(
        {
            'width'       :   '49% !important',
            'margin-right' :   '1% !important'
        }
    );
于 2013-09-24T06:34:51.483 回答
2

jQuery 不允许像您尝试的那样设置 !important。但是,我认为以下内容对您有用。

jQuery.style(name, value, priority);

您可以使用它来使用 .style('name') 获取值,就像 .css('name') 一样,使用 .style() 获取 CSSStyleDeclaration,还可以设置值 - 能够将优先级指定为“重要” . 请参阅https://developer.mozilla.org/en/DOM/CSSStyleDeclaration

尝试类似:

var div = $('someDiv');
console.log(div.style('color'));
div.style('color', 'red');
console.log(div.style('color'));
div.style('color', 'blue', 'important');
console.log(div.style('color'));
console.log(div.style().getPropertyPriority('color'));

但是,使用媒体查询是正确的方法。

于 2013-09-24T07:01:06.030 回答