3

現在、この.load()関数を使用して、コンテンツをコンテナdivに動的にロードしています。ロードされているコンテンツは、ゼブラストライプしたいテーブルデータです。静的ページではゼブラストライプは簡単ですが、コンテナにロードされた新しいコンテンツをゼブラストライプする方法がわかりませんdiv

これが私が作業しようとしているコードです:

$("table tbody tr:even").live("EVENT", function(){
  $(this).addClass("alt");
});

「EVENT」は、ではなく"click""mouseover"「onload」またはその効果をもたらす何かである必要があります。これを行う方法はありますか?あなたの提案をありがとう!

〜Jared

4

4 に答える 4

7

load()のコールバック関数でゼブラストライピングコードを実行する必要があります。

$("#myDiv").load( "/somecontroller/someaction", { data: value }, function() {
    $("#myDiv").find( "table tbody tr:even" ).addClass( "alt" );
});
于 2009-11-04T18:39:16.827 に答える
0

tvanfossonの回答(この場合はこれが最善の策です)の拡張として、live()関数は現在一部のイベントのみをサポートしています。これはhttp://api.jquery.com/のドキュメントからのものです:

可能なイベント値:click、dblclick、mousedown、mouseup、mousemove、mouseover、mouseout、keydown、keypress、keyup

現在サポートされていません:blur、focus、mouseenter、mouseleave、change、submit

于 2009-11-04T18:41:26.977 に答える
0

テーブルにデータを動的に追加するには、別のコードを使用する必要があります。ではない?その関数内で、データをテーブルにロードした後、cssクラスを行に追加します。その関数で以下の方法を使用すると、

$("table tbody tr:even").removeClass("alt").addClass("alt");
于 2009-11-04T18:44:34.350 に答える
-1

私はjquery1.4.2でイベントをトリガーするためにこのようにします

$( "body")。live( "mousemove"、function(){$("。zebratr:nth-​​child(even)")。addClass( "alt");});

于 2010-06-19T05:28:59.710 に答える