为什么jQuery代码在window.load中有时可以工作?

3

我正在尝试隐藏一个在运行时由accordion.js动态添加的div,但有时它会被隐藏,有时不会。

这是我的代码:

function hideTab2() {
  $(window).load(function(){
    $("#myaccordian-accordion").find('.panel ').eq(1).addClass('hidden');
    $("#myaccordian-accordion").find('.panel ').eq(2).addClass('hidden');
  });
}

从代码后端调用hideTab2()函数。

由于.panel类是动态添加的,如果我不使用window.load(),则无法找到.panel类。 - Ghanshyam Lakhani
你能展示更多的代码和信息,说明你实际想要做什么吗? - Rohit Arora
我只想通过(.panel)类隐藏div,是否有其他替代$(window).load的方法,而且在运行时添加的.panel类div不在页面中。 - Ghanshyam Lakhani
如果(Request.QueryString [“school”]!= null && Convert.ToString(Request.QueryString [“school”])!=“”) {ClientScript.RegisterStartupScript(this.GetType(),“hidetab2”,“hideTab2();”,true);} - Ghanshyam Lakhani
让我们在聊天中继续这个讨论 - Ghanshyam Lakhani
显示剩余2条评论
1个回答

1
你应该尝试这个,它会在页面完全渲染后调用。
$(window).bind("load", function () {
    $("#myaccordian-accordion").find('.panel ').eq(1).addClass('hidden');
    $("#myaccordian-accordion").find('.panel ').eq(2).addClass('hidden');
});

与提问者讨论过,

<head runat="server">
<title></title>

<% if(Request.QueryString["status"] == "add") { %>
    $(window).bind("load", function () {
        $("#myaccordian-accordion").find('.panel ').eq(1).addClass('hidden');
        $("#myaccordian-accordion").find('.panel ').eq(2).addClass('hidden');
    });
<%} %>

</head>

你什么时候从后端调用 hideTab2() 函数? - Keval Gangani
当查询字符串在URL中不可用(表示新记录)时,将调用hidetab2()函数。 - Ghanshyam Lakhani
我已经更新了我的答案,你可以在你的.ASPX页面中编写那段代码。我认为它会解决你的问题。 - Keval Gangani

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接