jQuery点击/“unclick”?

时间:2014-06-04 12:53:50

标签: javascript jquery

我目前正在为我朋友的网站开发导航。我像这样使用事件绑定:

$(document).on('click', '.title-container h1 a, .img-container a', function() {
    showPosts();

    return false;
});

我需要的是一个jQuery的功能或能够撤消之前click的东西。我试图避免使用这两次,我在思考 - 是否有类似于hover(有两个参数)的东西,我可以使用它?

长话短说 - 我只想click http://api.jquery.com/hover/这样的内容。

showPosts()正在使用$.get加载帖子。我想要的是:当我再次点击这篇文章时,我想解雇unShowPosts()函数。

我希望以某种方式清除它。对不起,我的英语很差,看起来很糟糕。

3 个答案:

答案 0 :(得分:2)

尝试使用.data()这样的用法:

$(document).on('click', '.title-container h1 a, .img-container a', function () {  
   $(this).data('clicked', !$(this).data('clicked'));     
   $(this).data('clicked') ?  showPosts() : unShowPosts(); 
});

答案 1 :(得分:0)

您只需要点击以下内容设置您的活动:.off(...)并注册一个新的活动,这将调用您的其他功能。

查看详情:http://api.jquery.com/off/

function unshowPost() { ... }

function showPost() {

    ...
    // Remove current event...
    $(document).off('click', '.title-container h1 a, .img-container a', showPost);
    // Register a new one to trigger "unshowPost" function.
    $(document).on('click', '.title-container h1 a, .img-container a', unshowPost);

    return false;
}

$(document).on('click', '.title-container h1 a, .img-container a', showPost);

在此处查看行为:http://jsfiddle.net/XTCEr/1/

答案 2 :(得分:0)

类似的东西:

var hidden = true
$(document).on('click', '.title-container h1 a, .img-container a', function() {
    hidden = !hidden ? hidePosts() : showPosts()
});