2014-02-28 26 views
0

這是我的代碼。現在,它只隱藏最上面的一行,並且工作一次(我不明白爲什麼)。我使用委託(從另一個StackOverflow答案中借用)做到了,現在只有在設計中單擊第三個單元時才隱藏,但老實說,如果通過單擊任何單元隱藏解決方案,我並不在意。如果我想單擊一個一個地隱藏,如何使用JQuery重複隱藏表格行?

的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答案來回答這個問題,但還沒有找到適合的匹配項。

+1

什麼只是在做$(「表TR」)上(「點擊」,函數(){$。 (this).hide();});如果你有多個表,使用$(「table#tableID tr」) – Dave

+0

謝謝!這對我行得通。我很欣賞答案。 – jumar

回答

1

您不需要爲每個表格行添加一個事件,因爲這會消耗不必要的內存。喲可以依靠事件冒泡來代替,只是一個事件附加到整個表:

$('table').on('click', 'tr', function(event) { $(event.target).hide(); }); 
1
$("table tr").click(function(e){ 
$(this).hide(); 
e.StopPropogation(); //stop bublling of events, or can just return false 
})