jQuery unbind / die live event

时间:2012-04-26 16:48:20

标签: jquery unbind

我有一个简单的应用程序来添加引号和喜欢引用的可能性(不像FB那样)。 我有一个简单的div作为一个带有以下孩子的按钮:一个带有总喜欢的跨度和一个用于某些文本的段落。我需要使用.live(),因为一些内容是用AJAX加载的。我需要取消绑定/死亡事件,因为一旦你点击了div就不能再被点击了。但是因为使用.live()你不能使用$(this)我尝试使用event.target但是这有一些问题。

我的HTML:

<div class="btnlike">
<span>0</span>
<p>Click to vote</p>
</div>

我的Javascript(到目前为止使用event.target)

$(".btnlike").live('click',function(event){     

    var $target;
    if( $(event.target).is("div") ) {
        $target = $(event.target);
    } else {
        $target = $(event.target).parent();
    }

    $target.unbind(event);      

});

但是我想使用.die(),但因为$(this)不起作用还有其他解决方案吗?

1 个答案:

答案 0 :(得分:1)

一种解决方案是检查它是否已在实时函数中的该元素上执行。

$(".btnlike").live('click',function(event){     
    if ($(this).data('clicked')) {
      // already ran it
      return; 
    }
    // mark it as being run
    $(this).data('clicked', true);
});