Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery.live和.delegate()动态添加类和删除类问题_Jquery_Drupal 7 - Fatal编程技术网

jQuery.live和.delegate()动态添加类和删除类问题

jQuery.live和.delegate()动态添加类和删除类问题,jquery,drupal-7,Jquery,Drupal 7,我正在尝试在没有结果的单击事件上添加和删除类。 我正在使用jQuery1.4开发Drupal7,书签链接由flag模块生成 我会解释我需要做什么。 我有一段html代码,如下所示: <div class="container"><a class="bookmark">Bookmark</a></div> <div class="container"><a class="flag bookmark">Bookmark</

我正在尝试在没有结果的单击事件上添加和删除类。 我正在使用jQuery1.4开发Drupal7,书签链接由flag模块生成

我会解释我需要做什么。 我有一段html代码,如下所示:

<div class="container"><a class="bookmark">Bookmark</a></div>
<div class="container"><a class="flag bookmark">Bookmark</a></div>
这在第一种情况下起作用,它不像“切换”那样起作用

我尝试过使用.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()

.live()和.delegate()都不会给我任何结果和错误,即使我想提醒一些文本。我做错什么了吗

我应该使用其他jQueryAPI吗

非常感谢

怎么样

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

toggleClass()适用于第一个操作,如果我再次单击,它将不起作用,因为在单击链接后,它将通过AjaxResolution重建。忘记关闭我的jQuery块。经过编辑,它确实有效。请点击此处:
$("a.flag").live('click', function() {
    if ($(this).parent().hasClass("this-bookmarked")) {
        $(this).parent().removeClass('this-bookmarked');            
    } else {  
        $(this).parent().addClass('this-bookmarked');
    }

    return false;}
});
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;}
    );
});
$('a.flag').click(function()
{
    $(this).parent().toggleClass('this-bookmarked');
    return false;
});