JQuery slideToggle не работает для IE8 при использовании живых событий? - PullRequest
0 голосов
/ 16 декабря 2011

Я ударил себя по голове, и похоже, что ни одно из решений не помогает этому коду:

$(".showSomething").live('click', function(e) {
            e.preventDefault();
            var $container = $(this).parent().parent().next("div");
            var title = $container.is(':visible') ? "Show" : "Hide" ;
            $container.slideToggle('slow');
            $(this).text(title);
        });

Когда я нажимаю ссылку Show на странице, она действительно меняется на Hide, но это так. Элемент div, который должен переключаться, не отображается, и ссылка также получает блокировки в этом состоянии Hide.

Любой совет будет принят с благодарностью.

РЕДАКТИРОВАТЬ Вот как выглядит HTML:

<div class="something" id="asdf">
    <div class="anotherthing">
        <span class="showSomething">Info</span>
    </div>
</div>
<div class="details">
    This Should Get Shown
</div>

ОБНОВЛЕНИЕ : Я думаю, что есть некоторая подлинная проблема с IE8 по этому вопросу. Я смог заставить его работать, переключившись на следующее вместо «slideToggle»

var title = "";
            if( $container.is(':visible') )
            {
                title = "Show";
                $container.slideUp('slow');
            }
            else
            {
                title = "Hide";
                $container.slideDown('slow');
            }

Ответы [ 3 ]

0 голосов
/ 16 декабря 2011

Я думаю, вы parent. Попробуйте:

var $container = $(this).parent().parent().next("div");
0 голосов
/ 17 декабря 2011

Проблема была с PIE.htc (css3pie.com).Избегайте этого, как чумы, потому что в дополнение к проблеме, которая была у меня выше, если вы примените ее к одному слишком большому количеству элементов, ваш сайт попадет в обход для пользователей IE7-8, что сделает его практически бесполезным.

0 голосов
/ 16 декабря 2011

Я положил эту скрипку вместе, кажется, работает: http://jsfiddle.net/MarkSchultheiss/XdXtr/

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

<div id='holder'>
    <div id='clicker' class="showSomething">click me</div>
</div>
<div id='hidyho'>it is me to hide or not</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...