Селектор класса jQuery не работает в этой функции - PullRequest
0 голосов
/ 28 марта 2012

Это мой код:

$('.clicktotriggerajax').live('change', function(){
    history.pushState({}, '', this.href);
    popstate(this.href);
    return false;
});

Я должен использовать class в этой функции вместо id, потому что я присоединяю его к нескольким элементам.Однако проблема, с которой я сталкиваюсь, заключается в том, что эта функция не работает правильно при использовании класса .clicktotriggerajax.Я использую эту функцию для асинхронной загрузки своих страниц, и кажется, что return false не работает, потому что он использует прямой путь URL-адреса вместо выполнения остального скрипта, который у меня есть, который я могу показать, если вам, ребята, нужночтобы увидеть это.

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 28 марта 2012

Живые обработчики событий срабатывают, когда событие распространяется на Документ, поэтому все, что находится ниже в цепочке, уже сработало.Я представляю, что это происходит.См. http://api.jquery.com/live/

Вы говорите, что это потому, что вы используете класс.Если вы используете идентификатор, это работает?Я ожидаю, что в обоих случаях это не удастся.

У меня были случаи, когда мне приходилось использовать специальную логику для обработки других событий, чтобы исключить события, уже обработанные одним из моих живых обработчиков.(Например, живой обработчик удаляет что-то из DOM, поэтому обработчик кликов проверяет, что он все еще находится в DOM, перед дальнейшей обработкой.) Это особый случай, я не знаю глобального решения этой проблемы.

У меня нет разумных предположений относительно того, что делает ваш код с событием 'change' для класса, в котором также указано "click".Что вы пытаетесь остановить?Вы бы не пытались остановить действие по умолчанию для кнопки или гиперссылки с событием «изменить», не так ли?Может быть, вы имеете в виду событие «клик»?

...