我正在尝试在没有结果的点击事件中添加和删除类。 我正在使用jquery 1.4处理Drupal 7,书签链接由flag模块生成。
我将解释我需要做什么。 我有一个像这样的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');}
});
这适用于第一种,它不像“切换”那样工作。
我尝试使用.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吗?
非常感谢
答案 0 :(得分:2)
怎么样
$('a.flag').click(function()
{
$(this).parent().toggleClass('this-bookmarked');
return false;
});