我不确定这是否是我需要或不需要的“回调”,但基本上我试图通过.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);
})
})
答案 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();
}
});
根据您尝试实现的效果,这可能是您想要的任何改变。