Различия версий JQuery Toggle 1.4.1 и новее - PullRequest
0 голосов
/ 28 апреля 2011

В Jquery 1.4.1 приведенный ниже код работает должным образом. Однако, когда я пытаюсь перейти на 1.4.4 или 1.5.1, я получаю некоторые странности. Это древовидная структура, где вы нажимаете на +/-, и она разворачивается или разворачивается. Когда я пытаюсь создать новую версию JQuery, разворачивание / разворачивание дочернего элемента также запускает родительский элемент. это основано на этом, http://www.javascripttoolbox.com/jquery/

Есть идеи, что я делаю неправильно и / или нужно изменить, чтобы это работало с более новыми версиями JQuery?

$('div.tree div').live("click", function() {
                    var o = $(this);
                    o.children('div').toggle();
                    o.filter('.parent').toggleClass('expanded');                

});

div.tree div.parent
{
    cursor: pointer !important;
    background: transparent url(../../Images/plus.gif) no-repeat top left;
    font-size: 12px;
}
div.tree div.expanded
{
    background: transparent url(../../Images/minus.gif) no-repeat top left;
    font-size: 12px;
}

1 Ответ

0 голосов
/ 28 апреля 2011

Трудно ответить и без HTML, который вы использовали, но я думаю, что вы неправильно истолковали логику выбора jQuery.Когда вы делаете следующее:

o.filter('.parent').toggleClass('expanded');

Вы выбираете все элементы div.parent внутри всех элементов div.tree.Естественно, если у вас 5 детей и вы вызываете эту функцию, все, помеченное как родительское, будет переключено.Если я не понимаю, как вы настраиваете свою HTML-разметку

...