3
  1. 我的 asp.net 页面加载了一个文本框和一个按钮,此时没有隐藏元素。

  2. 单击按钮时,它会根据结果进行处理并创建多个 div(面板)。Div 将导致它们为 Pass、Fail、Neutral 等。这由 asp.net 异步 Web 服务调用发生,无需任何页面刷新

  3. 现在,在创建 div 之后,我想使用 jQuery 分析这些 div 的内容并向这些 div 添加特定属性。例如,Div 背景颜色为绿色表示通过,琥珀色表示中性等。将来会根据需要进行更多处理。

  4. 我只能在 asp.net 中执行此操作,但我希望将 div 突出显示的内容与 asp.net 代码分开,而 jquery 将更适合于此。

  5. (问题)在网页上创建这些 div 后如何触发 jquery 方法的任何建议。

编辑1:我正在尝试这个,但没有工作。

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

4 回答 4

2

是的,您可以使用liveon(这取决于您当前使用的 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.net 代码隐藏中调用 javascript 函数:

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

编辑:要pageLoad()在您的 js 文件中使用方法,您只需将scriptmanager添加到您的 asp.net 代码中一次。

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

然后,您可以在pageLoad(){}准备好之后的文档中做任何您想做的事情。

于 2012-12-24T08:14:10.597 回答
0

做一件事为这些div提供一个类假设“abc”是一个css类并将这个类应用于这些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 回答