0

スクリプトでhasClassメソッドを使用していますが、希望どおりに機能していません。私のHTMLテーブルは次のようになります

<table id="sort">
            <tr class="nodrag nodrop">
                <td colspan=3><strong><a style="cursor:pointer;" class="toggle">Group 1</a></strong></td>
                <td style="text-align: right;"><a class="button3" href="#" ><span> Edit </span></a> <a class="button3" href="#" ><span> Delete </span></a></td>
            </tr>
            <tr id="1" class="tr_group" style='display:none;'>
                <td style="width:10px;" class="dragHandle">&nbsp;</td>
                <td><a href=# style="margin-left: 20px;">Umair Iqbal</a></td>
                <td><span style="font-size: 12px; color: #999; line-height: 100%;">A Student at TUM</span></td>
                <td style="text-align: right;"><a class="button3" href="#" ><span> Edit </span></a> <a class="button3" href="#" ><span> Delete </span></a></td>
            </tr>
            <tr id="2" class="tr_group" style='display:none;'>
                <td style="width:10px;" class="dragHandle">&nbsp;</td>
                <td><a href=# style="margin-left: 20px;">Faryal Khan</a></td>
                <td><span style="font-size: 12px; color: #999; line-height: 100%;">A Doctor at KMC</span></td>
                <td style="text-align: right;"><a class="button3" href="#" ><span> Edit </span></a> <a class="button3" href="#" ><span> Delete </span></a></td>
            </tr> 
</table>

私のスクリプトは次のとおりです

 <script type="text/javascript">
        $(document).ready(function() {
            // $('#sort tr:even').addClass('alt');
            $('#sort').tableDnD({
                onDrop: function(table, row) {
                  alert(row.id);
                },
                dragHandle: ".dragHandle"
            });
            $("#sort tr").hover(function() {
                if($('#tr').hasClass('tr_group')) 
                {
                    $(this.cells[0]).addClass('showDragHandle');
                    }, function() {
                    $(this.cells[0]).removeClass('showDragHandle');
                }
            });
        });
 </script>

ホバー効果でクラス「tr_group」を持つ行にクラスshowDragHandleを追加していません

私が間違っていることは何か提案ですか?

前もって感謝します

4

5 に答える 5

1

セレクターが正しくありません。ハッシュを使用してIDを示しています。また、クラスの前に正しくない要素表記を付けています。

これ

if($('#tr').hasClass('tr_group')) 

する必要があります:

if($('tr').hasClass('group')) 
于 2012-05-30T14:51:24.227 に答える
0

変化する

if($('#tr').hasClass('tr_group'))

if($(this).hasClass('tr_group'))

すでに trs のリストを繰り返し処理しているためです。

于 2012-05-30T14:53:41.413 に答える
0

内で.hover、次のように質問する必要があります。

if ( $(this).hasClass("tr_group") )

trまたは、次のクラスを持つ要素にのみ応答することもできます。

$("#sort").on({
    mouseenter: function(){
        $("td:first", this).addClass("showDragHandle");
    },
    mouseleave: function(){
        $("td:first", this).removeClass("showDragHandle");
    }
}, "tr.tr_group");

tr対象の要素のみに応答できる場合は、if ステートメントを実行する必要はありません。

于 2012-05-30T14:52:01.640 に答える
0

の ID を持つ要素はありませんtr

あなたはおそらく欲しい:

if ($(this).hasClass('group')) 
于 2012-05-30T14:52:10.057 に答える
0

それ以外の:

$(this.cells[0])

使用する:

$('.dragHandle', $(this))

また、次のように変更します。

$('#tr')

に:

$('tr')
于 2012-05-30T14:52:45.767 に答える