Jquery 是否可以监视动态链接上的多次单击?
我有一个动态的故事/链接列表,显示在JQuery手风琴中,该手风琴由以下脚本控制-Jquery 是否可以监视动态链接上的多次单击?,jquery,Jquery,我有一个动态的故事/链接列表,显示在JQuery手风琴中,该手风琴由以下脚本控制- $('.newsDesc').hide(); $('.newsRow a.newsTitle ').click(function(){ $('.newsDesc').slideUp(); $(this).parent().next().slideDown(); return false; }); 单击a.newsTitle链接会显
$('.newsDesc').hide();
$('.newsRow a.newsTitle ').click(function(){
$('.newsDesc').slideUp();
$(this).parent().next().slideDown();
return false;
});
单击a.newsTitle链接会显示一个包含该故事的div,但单击后,该故事将保持“打开”,直到用户单击另一个链接。我想脚本隐藏的故事再次通过第二次点击相同的链接
有什么想法吗?您可以使用切换方法,例如切换幻灯片
查看文档最简单的方法是将计数器存储在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");
.....
});
更复杂的方法是编写一个特殊事件。这不太受欢迎,相当复杂,老实说,我没有勇气称它为核心功能,几乎不会改变,但无论如何,请检查tripleclick事件。这应该能满足您的需要:
$('.newsDesc').hide();
$('.newsRow a.newsTitle').click(function(){
var newsDesc = $(this).parent().next();
$('.newsDesc').not(newsDesc).slideUp();
newsDesc.slideToggle();
return false;
});
是的,这是可能的,但您必须提供更多信息。我们可以使用一个怎样的工具呢?发布html肯定会有助于获得更好的答案。这真的比使用slideToggle更容易吗?这取决于具体任务,但简短的答案是肯定的。它更灵活。在parent().next()或任何类似的“类无关”选择器上进行匹配几乎总是比较糟糕。想象一下,第二天经理过来要求把幻灯片换成别的东西。总的来说,知道如何做几乎总是更好的。