Jquery 是否可以监视动态链接上的多次单击?

Jquery 是否可以监视动态链接上的多次单击?,jquery,Jquery,我有一个动态的故事/链接列表,显示在JQuery手风琴中,该手风琴由以下脚本控制- $('.newsDesc').hide(); $('.newsRow a.newsTitle ').click(function(){ $('.newsDesc').slideUp(); $(this).parent().next().slideDown(); return false; }); 单击a.newsTitle链接会显

我有一个动态的故事/链接列表,显示在JQuery手风琴中,该手风琴由以下脚本控制-

$('.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()或任何类似的“类无关”选择器上进行匹配几乎总是比较糟糕。想象一下,第二天经理过来要求把幻灯片换成别的东西。总的来说,知道如何做几乎总是更好的。