【问题标题】:jQuery .live and .delegate() addClass and removeClass dynamically problemsjQuery .live 和 .delegate() addClass 和 removeClass 动态问题
【发布时间】:2012-03-02 14:49:15
【问题描述】:

我正在尝试在单击事件上添加和删除一个类,但没有结果。 我正在使用 jquery 1.4 开发 Drupal 7,书签链接是由标志模块生成的。

我会解释我需要做什么。 我有一段像这样的 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 吗?

非常感谢

【问题讨论】:

  • toggleClass() 适用于第一个操作,如果我再次单击它不起作用,因为单击链接后它将通过 AJAX 重建

标签: jquery drupal-7


【解决方案1】:

怎么样

$('a.flag').click(function()
{
    $(this).parent().toggleClass('this-bookmarked');
    return false;
});

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-02
  • 1970-01-01
  • 1970-01-01
  • 2015-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多