【问题标题】:Using JQuery, how do I repeatedly hide table rows if I want to click to hide one by one?使用JQuery,如果我想点击隐藏,如何重复隐藏表格行?
【发布时间】:2014-02-28 18:18:43
【问题描述】:

这是我的代码。目前,它只隐藏最上面一行,并且工作一次(我不明白为什么)。我使用委托(从另一个 StackOverflow 答案借用)做到了,现在它只有在我点击第三个单元格时才会隐藏,但老实说,如果解决方案通过点击任何单元格隐藏,我并不在意。

JavaScript:

$( function() {
  $("#hideme").delegate("td:nth-child(3)", "click", function() {
    $(this).closest("tr").hide();
  });
} );

HAML:

  %tbody
    - @assigned.each do |index,ticket|
      %tr{:class => ticket["style"], :id=>"hideme"}
        %td= ticket["hour"] 
        %td= ticket["domain"]
        %td= ticket["status"]
        %td= ticket["timer"]
        %td= link_to_zenid ticket["id"]
        %td= link_to_admin ticket["asker"],ticket["domain"]
        %td= ticket["subject"]

谢谢;任何帮助,将不胜感激。我试图通过查看其他 Stack Overflow 答案来回答这个问题,但尚未找到有效的匹配项。

【问题讨论】:

  • 怎么做 $("table tr").on("click", function() { $(this).hide(); });如果您有多个表,请使用 $("table#tableID tr")
  • 谢谢!这对我行得通。感谢您的回答。

标签: jquery html haml


【解决方案1】:

您不需要为每个表格行附加一个事件,因为这会消耗不必要的内存。哟可以依赖事件冒泡代替,并将一个事件附加到整个表:

$('table').on('click', 'tr', function(event) { $(event.target).hide(); });

【讨论】:

    【解决方案2】:
    $("table tr").click(function(e){
    $(this).hide();
    e.StopPropogation(); //stop bublling of events, or can just return false
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-03
      • 2017-11-05
      • 2010-12-28
      • 2021-08-23
      • 1970-01-01
      • 2011-07-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多