jQuery toggle .click()函数

时间:2011-10-06 15:28:05

标签: javascript jquery toggle jquery-events

我不确定这是否是我需要或不需要的“回调”,但基本上我试图通过.click()效果模拟.hover()效果的函数反转。这是可能的吗?所以基本上,如果用户再次点击链接,就会发生刚刚发生的事情,即div关闭而不是打开。是否可以使用.click()进行此操作?

$(document).ready(function(){
    $('.content_accrd').css({"height":"0px"});
$('.paneltop').click( function() {
    $(this).css({"background-position":"0px -21px"})
    .siblings().animate({"height":"100px"}, 200)
}, function() {
$(this).css({"background-position":"0px 0px"})
    .siblings().animate({"height":"0px"}, 200);

})
})

3 个答案:

答案 0 :(得分:5)

使用.toggle(),而不是.click()

  

说明: 将两个或多个处理程序绑定到匹配的元素,以便通过备用点击执行。

答案 1 :(得分:1)

尝试切换

$(".paneltop").toggle(function(){
    //first click happened
},function(){
    //second click happened
});

答案 2 :(得分:0)

不,点击操作总是会做同样的事情。如果您希望它具有交替效果,则必须检查元素的当前状态并相应地将其切换到新状态。

这看起来像:

  $('#foo').click(function () {
    if ( $('#foo').is(':visible') ) {
      $('#foo').hide();
    } else {
      $('#foo').show();
    }
  });

根据您尝试实现的效果,这可能是您想要的任何改变。