簡體   English   中英

td行上的jQuery click事件未觸發

[英]jQuery click event on td row not firing

我有一個簡單的jQuery,如果選中,它會顯示當前一行下面的行。

我想要的是所有的<td>元素,但是要觸發這個方法。

適用於整個<tr>

        $(document).ready(function(){

        $("#report > tbody > tr.odd").click(function(){
            $(this).next("#report tr").fadeToggle(600);
        });
    });

想做點什么(不起作用)

    $(document).ready(function(){

        $("#report > tbody > tr.odd > td.selected").click(function(){
            $(this).next("#report tr").fadeToggle(600);
        });
    });

在你的非工作代碼中, $(this)是一個<td>元素。

因此, $(this).next("#report tr")與任何內容都不匹配。 (因為<td>元素沒有<tr>元素作為兄弟姐妹)

您需要將其更改為$(this).closest('tr').next("#report tr")以查找“uncle”元素。 你也可以調用.parent()而不是.closest('tr') ,但是即使你將click處理程序綁定到<td>的子.closest ,調用.closest也會繼續工作。

你需要這樣的東西:

 $(document).ready(function(){
    $("#report tr:not(.odd)").hide();
    $("#report tr:first-child").show();

    $("#report > tbody > tr.odd > td.selected").click(function(){
        $(this).closest("tr").next("tr").fadeToggle(600);
    });
});

由於您單擊了某個td,因此在嘗試獲取下一行之前需要前往該行。 此選擇器在大多數情況下也應該相同: #report td.selected 因為你無法逃脫與兄弟一起進入#report#report tr也可以只是你的next() tr

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM