Почему мой простой код jQuery не работает с методом .css ()?

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'
            }
        );
    }
}

Поэтому, когда я изменяю размер окна, я получаю оба сообщения в моей консоли Chrome в соответствии С#containerInfo, но.col_1_2 не обновляется.

Что-то не так в моем коде, и я не могу это узнать?

Примечание. У меня открыта консоль, и на моей консоли не появляется сообщение об ошибке. Также на вкладке "Элементы" моей консоли я проверяю элемент, который должен быть изменен, и я не вижу никаких изменений. Нормальный атрибут "стиль" должен быть добавлен к совпадающему элементу.

С уважением

Теги:

3 ответа

3
Лучший ответ

Попробуйте взлететь! Важно... они вам не нужны, поскольку стили, применяемые с.css, добавляются непосредственно в элемент (переопределяя любые другие стили, которые могут применяться).

  • 0
    Странно, что это работает, но я не могу спорить с результатами;)
2

jQuery не позволит установить! важно, как вы пробовали. Однако я думаю, что для вас будет работать следующее.

jQuery.style(name, value, priority);

Вы можете использовать его для получения значений с помощью.style('name') так же, как.css('name'), получить CSSStyleDeclaration с.style(), а также установить значения - с возможностью указать приоритет как "важный", См. 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'));

Однако использование медиапроцессора - правильный способ продолжения.

2

Попробуйте это, вам не хватает атрибута '(quote). Добавьте quote во все css, тогда она будет работать.

$('.col_1_2').css(
        {
            'width'       :   '49% !important',
            'margin-right' :   '1% !important'
        }
    );
  • 0
    Спасибо за ваш ответ. Я уже пробовал это, но до сих пор нет работы.
  • 0
    Проверьте консоль и найдите ошибку
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню