我有一个动态的故事/链接列表,我在一个由这个脚本控制的JQuery手风琴中显示 -
$('.newsDesc').hide();
$('.newsRow a.newsTitle ').click(function(){
$('.newsDesc').slideUp();
$(this).parent().next().slideDown();
return false;
});
点击a.newsTitle链接会显示一个包含故事的div,但一旦点击该故事仍然是“打开”,直到用户点击另一个链接。我希望脚本能够通过再次点击同一链接再次隐藏故事。
有什么想法吗?
答案 0 :(得分:2)
这应该有希望做你想做的事:
$('.newsDesc').hide();
$('.newsRow a.newsTitle').click(function(){
var newsDesc = $(this).parent().next();
$('.newsDesc').not(newsDesc).slideUp();
newsDesc.slideToggle();
return false;
});
答案 1 :(得分:0)
您可以使用切换方法,例如切换幻灯片 请查看this link以获取文档
答案 2 :(得分:0)
最简单的方法 - 将计数器存储在DOM元素数据中。更容易,如果我们谈论二进制状态 - 我们绑定特定的类并触发该类,从而改变触发的事件。这甚至适用于更多的州,但我强烈建议停止两个。但是,例如,这个想法是
$("a.link.stateA").live("click", function() {
//if there are two state only, it is most probably better to use toggleClass
$(this).removeClass("stateA").addClass("stateB");
.....
});
$("a.link.stateB").live("click", function() {
$(this).removeClass("stateB").addClass("stateC");
.....
});
$("a.link.stateC").live("click", function() {
//we are back!!!
$(this).removeClass("stateC").addClass("stateA");
.....
});
更复杂的方法 - 写一个特殊的事件。这不太受欢迎,相当复杂,说实话,我没有勇气把它称为核心功能,几乎不会改变,但是,请检查this doc中的tripleclick事件。