Эффект переключения Jquery в IE 8/7 - PullRequest
2 голосов
/ 17 сентября 2011

Я использую следующую функцию jquery toogle, чтобы показать / скрыть подробный список

    $('dt').toggle(
function() {
    $(this).next('dd').slideUp();
    $(this).addClass('selectedArrow');

},
function() {
    $(this).next('dd').slideDown();
    $(this).removeClass('selectedArrow');

}
);

Это добавляет класс selectedArrow во все браузеры, кроме IE7 и IE8, причина в том, что этот класс имеет фонизображение, которое меняется в зависимости от того, в каком состоянии находится тогл,

Любые идеи, как я могу получить его, чтобы добавить класс в IE7 / 8, или знаю альтернативный метод получения того же результата.


Спасибо за вашу помощь, в конце концов удалось заставить его работать, это оказалось проблемой выравнивания фона стрелок в моем css

Ответы [ 2 ]

2 голосов
/ 17 сентября 2011

Ваш код работает здесь в IE6 и IE9 и в режиме совместимости IE9, который имитирует IE7 и IE8 в этот jsFiddle , поэтому я думаю, что проблема связана с чем-то, что вы нам не раскрываете о вашей реальной странице, или вашем HTML, или что-то еще о вашем коде.

Вот что я использовал в своей демонстрации, чтобы показать, что она работает:

HTML:

Click on Coffee or Milk<br><br>
<dl>
  <dt>Coffee</dt>
    <dd>- black hot drink</dd>
  <dt>Milk</dt>
    <dd>- white cold drink</dd>
</dl>

И, я использовал ваш точный код:

$('dt').toggle(
    function() {
        $(this).next('dd').slideUp();
        $(this).addClass('selectedArrow');
    },
    function() {
        $(this).next('dd').slideDown();
        $(this).removeClass('selectedArrow');
    }
);
0 голосов
/ 17 сентября 2011

Вы пробовали другое решение?Что-то вроде:

$('#dt').click(function(){
   $(this).next('dd').slideToggle().toggleClass('selectedArrow');
});
...