jQuery IE7 - клики регистрируют только первый элемент в пути - PullRequest
1 голос
/ 06 октября 2009
$('div#Categories > div.categories  a#showhide').click(function(){
        // Get the subManufacturers list
        var subCatList = $(this).parent().find('ul#hiddenSubCategories');

        // If collapsed do expand
        if (subCatList.css('display') == 'none')
        {
            subCatList.slideDown('slow');
            $(this).find('span').html('Hide');
        }
        else 
            {
            subCatList.slideUp('slow');
            $(this).find('span').html('View All');
        }

        // Stop link from doing anything
        return false;
    });

Приведенный выше код прекрасно работает в IE8, Firefox и Chrome (не тестировался в Opera), но регистрирует функцию щелчка только с первым совпадающим элементом, а не со всеми соответствующими ему. Это известная ошибка или что-то уникальное для этого сайта и, следовательно, проблема в другом месте.

Ответы [ 2 ]

5 голосов
/ 06 октября 2009

$('div#Categories > div.categories a#showhide')

Если ваш элемент 'a' имеет идентификатор, он должен быть уникальным на странице. т.е. не должно быть более одного элемента с идентификатором 'showhide' на странице.

Это, наверное, то, что портит IE. Попробуйте изменить идентификатор на имя класса.

2 голосов
/ 06 октября 2009

У вас есть a#showhide в селекторе. Поскольку идентификаторы должны быть уникальными, это будет соответствовать только одному элементу.

Вы, вероятно, хотите использовать class="showhide" и a.showhide вместо.

...