gpt4 book ai didi

c# - $(window).load(handler) 不会触发

转载 作者:太空狗 更新时间:2023-10-30 01:09:04 25 4
gpt4 key购买 nike

我一直在使用 jQuery 开发一个 Asp.NET 网络应用程序,以生成一个漂亮、灵活和快速的 UI。我创建了骨架

<div id='title'>
&nbsp;&nbsp;
<h3 class='color-black h3'>
Choose the career</h3>
<p>
&nbsp;</p>
<p>
&nbsp;</p>
<p>
&nbsp;</p>
</div>
<div id='tabbedContent' class='tabbed_content'>
<div id='tabs' class='tabs'>
<div class='moving_bg'>
&nbsp;
</div>
</div>
<div id='contentID' class='slide_content'>
<div id='tabsliderID' class='tabslider'>
</div>
</div>
</div>

现在开始,我将使用 jQuery 附加一些动态创建的 DOM 元素。我通过从 Page_Load 方法 (ASP) 中调用两个 js 函数来完成此操作,这两个函数将完成所有神奇的工作。然后我需要初始化几个脚本(tabbedContent 和 iNettuts)。问题是这些脚本只需要在整个页面创建后才需要初始化 - 包括动态创建的内容 - 所以我不能使用 $(document).ready 并且当我使用 $(window).load 时有时它会工作有时它没有。

我用谷歌搜索了至少两周,但仍然一无所获。我应该怎么办? jQuery 不应该处理这个问题吗?如果没有..有什么解决方法吗?

附言。努力让它在 IE7-8、Chrome 10 和 FF 6 中工作

顺便说一句,一旦我实现了这一点,我将需要进行一些网络服务调用以从数据库中获取数据。这会影响行为吗?我应该期待更多的头痛吗?

最佳答案

在对您的建议进行了一些研究并实现了 Radus 建议的一个非常非常漫长的夜晚之后——这可以解释为要加载的每个元素的标志——我开始问自己:如果 ready() 有一个标志怎么办?在那种情况下,我不应该担心初始化的时间。好吧,事实证明这个标志确实存在,它被称为 holdReady()。基本上,它会阻止启动 ready() 事件,直到标志设置为 false。

“$.holdReady() 方法允许调用者延迟 jQuery 的就绪事件。此高级功能通常由动态脚本加载器使用,它们希望在允许就绪事件发生之前加载额外的 JavaScript,例如 jQuery 插件,甚至尽管 DOM 可能已准备就绪。必须在文档的早期调用此方法,例如在 jQuery 脚本标记之后立即调用。在已触发就绪事件后调用此方法将无效。"[1]

所以,我做到了:

$.holdReady(true); 
//using ASPs page_load so it will be triggered everytime
//a postback happens -gonna need it for the AJAX requests i'm planning to do.
//Then I create the dynamic content
$.holdReady(false); //then I let the event fire


$(document).ready(function(){
//append the dynamic content
iNettuts.init();
tabbedContent.init();
});

就这样,问题解决了。希望这对其他人有帮助,谢谢大家。

[1] http://api.jquery.com/jQuery.holdReady/

关于c# - $(window).load(handler) 不会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7815408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com