Javascript 在coffeescript中将多个jQuery nextAll()函数串在一起?

Javascript 在coffeescript中将多个jQuery nextAll()函数串在一起?,javascript,jquery,coffeescript,Javascript,Jquery,Coffeescript,我有一个带有mutliple s的页面,我希望能够在单击这些元素时在不同的子元素上运行函数。这是我的咖啡脚本: $("h2").click -> $(@).nextAll('#data').toggle("blind") $(@).nextAll('.c1').toggleClass("minsize") $(@).nextAll("#datacontainer").toggleClass("datacontainer") $(@).addClass("showtext")

我有一个带有mutliple s的页面,我希望能够在单击这些元素时在不同的子元素上运行函数。这是我的咖啡脚本:

$("h2").click ->
  $(@).nextAll('#data').toggle("blind")
  $(@).nextAll('.c1').toggleClass("minsize")
  $(@).nextAll("#datacontainer").toggleClass("datacontainer")
  $(@).addClass("showtext")
以下是我正在使用的相关HTML结构(在haml中,这是Rails应用程序的一部分):


问题是它只运行$(@).nextAll('#data').toggle(“blind”)函数,而不是它下面的其他三个。当我运行同一个coffeescript时,前面没有$(@).nextAll代码,所有的函数都正常工作,但只在页面上的第一个。

已经研究了好几年了,我认为我没有看到你在这里所做的有任何错误。您错误地使用了
.toggle()
,它不接受这样的字符串(
“blind”
)-您的意思是切换类吗?否则,如果您只是切换可见性,您可以将其保留为
.toggle()
。检查文档。但如果真的存在问题,请设置一个快速测试程序来测试它。我曾经检查过你的coffeescript编译。我可以看一下你的html结构吗(相关部分)?只要你的html结构正确就可以了()。但是,将
nextAll
与ID选择器一起使用是很奇怪的,这表明您可能有重复的
ID
属性(这是无效的,会导致问题)。@infensus-谢谢,刚刚添加了HTML结构。@muistooshort重复ID属性可能是这种情况——那么,有什么更好的方法来处理这个问题呢?在每一个上放置一个唯一的id?
#clipboard
%ul.clipmenu
    -@snapshots.each do |snapshot|
        %li.clip.c1[snapshot]
            = image_tag snapshot.attachment.url
            #datacontainer.c1
                %h2= snapshot.default_name
                #data.c1{:style => "display:none"}
                    %textarea
                    %p Some text