3
  1. 私のasp.netページには、1つのテキストボックスと1つのボタンが読み込まれ、この時点では隠し要素はありません。

  2. ボタンをクリックすると、処理が行われ、結果に基づいて多数の div (パネル) が作成されます。div は、合格、不合格、中立などの結果をもたらします。これは、ページを更新せずに asp.net 非同期 Web サービス呼び出しによって発生します。

  3. div が作成されたら、jQuery を使用してこれらの div のコンテンツを分析し、これらの div に特定の属性を追加します。例: Div の背景色をパスの場合は緑、ニュートラルの場合はアンバーなど。将来的には必要に応じてさらに多くの処理を行う予定です。

  4. これはasp.netでのみ実行できますが、divの強調表示をasp.netコードとは別にしたいので、jqueryの方が適しています。

  5. (質問) これらの div が Web ページで作成された後に jquery メソッドをトリガーする方法についての提案。

編集1:これを試していますが、機能していません。

$(document).on("create", '[id*="GridComp"]', function () { 
    alert("Created 1");
    // change background color of divs or any other thing
});
4

4 に答える 4

2

はい、ライブまたはオンを使用できます(現在使用しているjqueryのバージョンによって異なります)

$("#DIV1").live("EventName", function(){

    //...

});

それらを上げるには、これを使用できます:

$("#DIV1").trigger("EventName");
于 2012-12-24T07:57:03.280 に答える
0

あなたはあなたのjqueryコードを以下に使用することを試みることができますpageLoad()

function pageLoad(){
//your jquery code is here
}

または、asp.netcodebehindからjavascript関数を呼び出すことができます。

Page.ClientScript.RegisterStartupScript(this.GetType(), "call-your-function", "YourFunctionName();", true);

編集:pageLoad()jsファイルにメソッドを使用するには、 scriptmanagerをasp.netコードに1回だけ追加する必要があります。

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>

pageLoad(){}その後、アフタードキュメントの準備ができたら、やりたいことが何でもできます。

于 2012-12-24T08:14:10.597 に答える
0

「abc」がcssクラスであると仮定して、これらのdivに1つのクラスを提供し、このクラスをこれらのDiv`に適用します。次に、これらのdivの内容を次のように確認します。

 if ($('.divclass').html() != "Pass") 
 {
    $('.divclass').addClass("css class name of Pass");
    //Or
   $('.divclass').css('background-color', 'Green');
 }

 if ($('.divclass').html() != "Fail") 
 {
    $('.divclass').addClass("css class name of Fail");
    //Or
   $('.divclass').css('background-color', 'Red');
 }
于 2012-12-24T08:57:25.790 に答える
0

それらの div の Id 属性に「GridComp」が含まれている場合。次に、setInterval メソッドを使用して、div の存在を確認し続けることができます。見つかった場合は、含まれているテキストとクリア間隔に従ってこれらの div のスタイルを設定します。

var intervalId;
$(function(){
    intervalId = setInterval(styleDynamicDivs, 500);
});

function styleDynamicDivs(){

    if($('div[id*="GridComp"]').length > 0){
        clearInterval(intervalId);

        $('div[id*="GridComp"]').each(function(){
            var result = $.trim($(this).text().toLowerCase());
            if(result == "pass"){
                $(this).css('background-color', 'Green');
            }
            else
            {
                $(this).css('background-color', 'red');
            }
        });
    }
}​
于 2012-12-24T09:59:20.933 に答える