Я пытаюсь добавить и удалить класс по событию щелчка без результатов.Я работаю над Drupal 7 с jquery 1.4, и ссылки закладок генерируются модулем флага.
Я объясню, что мне нужно сделать.У меня есть кусок HTML-кода, подобного следующему:
<div class="container"><a class="bookmark">Bookmark</a></div>
<div class="container"><a class="flag bookmark">Bookmark</a></div>
Теперь, когда вы нажимаете «Закладка», автоматически (по флагу модуля) классы ссылок меняются (он меняется через AJAX, и ссылкаперестроен)
<div class="container"><a class="flag bookmark">Bookmark</a></div>
<div class="container"><a class="flag bookmarked">Bookmarked</a></div>
То, что я хочу сделать, это дать класс для контейнера, поэтому я написал
$('.bookmarked').click(function(){
$(this).parent().removeClass('this-bookmarked');}
});
$('.bookmark').click(function(){
$(this).parent().addClass('this-bookmarked');}
});
Это работает на первом, он не работает как "toggle ".
Я пытался использовать .live (), но безрезультатно, он вообще не работает.
$("a.flag").live({
click: function() {
if ($(this).parent().hasClass("this-bookmarked")) {
$(this).parent().removeClass('this-bookmarked');
} else {
$(this).parent().addClass('this-bookmarked');
}
return false;}
});
Я тоже пробовал
$("a.flag").live('click', function() {
if ($(this).parent().hasClass("this-bookmarked")) {
$(this).parent().removeClass('this-bookmarked');
} else {
$(this).parent().addClass('this-bookmarked');
}
return false;}
});
чтобы быть уверенным, что я тоже использовал .delegate ()
jQuery(function() {
jQuery(document).delegate("a.flag", "click", function() {
if (jQuery(this).hasClass("this-bookmarked")) {
jQuery(this).parent().removeClass('this-bookmarked');
} else {
jQuery(this).parent().addClass('this-bookmarked');
}
return false;}
);
});
И .live (), и .delegate () не дают мне никаких результатов и ошибок, даже если я хочупредупредить некоторый текст.Я делаю что-то неправильно?
Должен ли я использовать какой-нибудь другой jquery API?
Большое спасибо