toggleClass не работает в прямом эфире - PullRequest
0 голосов
/ 16 июля 2011

У меня проблема ниже, мой код. я использовал toggleClass и передал класс CSS в нем. Теперь, если я использую без метода live (), он работает нормально. Но если я использую метод live (), он не работает, я застрял в этой проблеме.

// Без метода live () и работает нормально

$('#shownColumnsDiv tbody tr').click(function () {
        globalMove = $(this);
        globalArray.push(globalMove);
        index = $('#shownColumnsDiv tbody tr').index(this);
        alert(index);
        globalMove.toggleClass('highlight');            
    });

// С методом live () он не работает нормально

$('#shownColumnsDiv tbody tr').live("click", function(){
        globalMove = $(this);
        globalArray.push(globalMove);
        index = $('#shownColumnsDiv tbody tr').index(this);
        alert(index);
        globalMove.toggleClass('highlight');
    });

// это часть CSS

.highlight {
background-color: #0078ae;
color: white;
}

Ответы [ 2 ]

1 голос
/ 16 июля 2011

Попробуйте:

globalMove.toggleClass('highlight');

globalMove уже является объектом jQuery, поскольку вы сохранили в нем $(this), почему вы хотите сгенерировать объект jQuery объекта jQuery, написав $(globalMove)?

Похоже, у меня все работает нормально?

0 голосов
/ 21 мая 2014

используйте .on вместо live.

теперь больше не рекомендуется.Теперь, когда .live () устарела в jQuery версии 1.7 и удалена в версии 1.9, нам нужно использовать метод .on ().Вот эквивалентный пример использования метода .on ():

$(document).on('click', 'button', doSomething);

function doSomething() {
    // do something
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...