Функция jQuery css () не будет применять атрибуты взлома IE - PullRequest
1 голос
/ 18 декабря 2009

Я пытаюсь применить стиль встроенного блока к элементу (конкретный div). И чтобы добиться этого в IE, вы должны использовать хак:

$('#element').css(
    {
        'display'  :    'inline-block',    //applies inline-block to matched elements in all browsers except IE due to hasLayout bug
        'zoom'     :    1,                 //set hasLayout to 'true' in IE
        '*display' :    'inline'           //use asterisk to only apply 'inline' style to IE
    }
);

Однако функция css (), похоже, представляет стиль в браузере так, что «display» не регистрируется в IE и поэтому не применяет стиль «inline».

Любые идеи о том, почему и / или как обойти это?

Ответы [ 4 ]

2 голосов
/ 18 декабря 2009

Я думаю, что это должно сделать это тогда:

if($.browser.msie){
    $('#element').css({'display' : 'inline'});
}
1 голос
/ 18 декабря 2009

jQuery отфильтрует «плохие» свойства CSS - т.е. хаки при использовании функции css.

Однако вы в jvascript - ДЕЛАЙТЕ ОБНАРУЖЕНИЕ В JAVASCRIPT. Нет смысла использовать хак, потому что у вас есть все виды инструментов для обнаружения не только для IE, но и для версии. Решение Рэмбо адекватно: -)

0 голосов
/ 12 декабря 2012

Я думаю, что вы можете попробовать css ('display', 'inline')

0 голосов
/ 18 декабря 2009

Как сказано выше, jQuery не позволит вам применять недопустимые свойства. Если вам все равно нужно это сделать, поместите их в класс CSS и включайте и выключайте класс с помощью addClass () и removeClass ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...