2011-05-31 2 views
0

Я пытаюсь получить некоторые css с jquery в Internet Explorer.Получение css с jquery и Internet Explorer

устанавливаемого сотовым установлено во внешнем файле и выглядит следующим образом:

#something a { 
    text-decoration: none; 
    /* since I dont want underline when not hover */ 
} 

#something a:hover { 
    text-decoration: underline; 
} 

И я хочу, чтобы получить, если подчеркивание установлено или нет.

Это работает в Firefox и WebKit, но не IE:

$('a').hover(function() { 
    console.log($(this).css('textDecoration')); 
    /* this return underline in FF and Webkit but not in IE */ 
}); 

Кто-нибудь знает, как заставить его работать в IE?

+0

@Patrik Привет, друг, ваш код возвращает правильное свойство, которое я проверил в IE7 +. какую версию IE вы используете? Здесь можно подумать, что тег по умолчанию обладает 'underline'. так что если вы не дадите ему 'text-decoration', используя css, то код вернет' underline' – thecodeparadox

+0

@ abdullah.abcoder Hm ... вы уверены, что вы пробовали с: hover? попробуйте установить #something {text-decoration: none; } и #something a: hover {text-decoration: underline; } || Я немного обновлю код примера. – Patrik

+0

Вы сомневаетесь в нелогичности. Внутри события hover ссылка всегда будет подчеркнута, поэтому нет смысла тестировать ее. Правильно ли ваш пример? Вам действительно нужно знать, подчеркнута ли ссылка, или если она только парит? – RoToRa

ответ

1

Добавление setTimeout делает его работу:

$("a").hover(function() { 
    var x = $(this); 
    setTimeout(function() { 
     console.log(x.css("text-decoration")); 
    }, 1); 
}); 

http://jsfiddle.net/ZGKqC/2/

+0

Спасибо, что работает, но функция наведения не работает. Мышь работает, но мышь не работает (тот же код работает в ff/webkit) http://jsfiddle.net/SeaNC/ – Patrik

0

попробовать, как это ...

$('a').hover(function() { 
    $(this).css('text-decoration','underline'); 
}); 
+0

Я хочу, чтобы не установить css. Я обновил свой код. – Patrik

+0

Почему отрицательный голос? +1 по той же причине, что и изначально было установлено. – MarioRicalde

+0

-1 был не слишком близок. OP не хочет устанавливать подчеркивание, он хочет знать * если * он установлен. – RoToRa

0

Попробуйте Bro:

$('a').css('textDecoration', 'none'); //initially set no underline 
$('a').mouseenter(function() { 
    $(this).css('textDecoration', 'underline'); //set underline in hover in 
}).mouseleave(function() { 
    $(this).css('textDecoration', 'none'); // set no underline in hover out 
}); 
+0

@Patrik этот код независимая форма 'css' свойство i.e, если' underline' установлен или нет 'a' – thecodeparadox

+0

-1 для того, чтобы не быть даже близко. OP не хочет устанавливать подчеркивание, он хочет знать * если * он установлен. – RoToRa

+0

Проблема в том, что я не знаю, должна ли ссылка иметь подчеркивание. Если я пишу a: hover {text-decoration: underline}, я хочу, чтобы js проверил css и сказал, что «эта ссылка должна иметь подчеркивание», и если я напишу text-decoration: none; он должен сказать: «Эта ссылка не должна быть подчеркнута». – Patrik

0

Попробуйте следующие

$('a').hover(function() { 
    console.log($(this).css('text-decoration'));   
}); 
+0

Я уже пробовал это. – Patrik