c# – $(window).load(handler)不会触发
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – $(window).load(handler)不会触发,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1975字,纯文字阅读大概需要3分钟。
内容图文
我一直在使用jQuery的Asp.NET Web应用程序来生成一个甜美,灵活和快速的UI.我创造了骨架
<div id='title'>
<h3 class='color-black h3'>
Choose the career</h3>
<p>
</p>
<p>
</p>
<p>
</p>
</div>
<div id='tabbedContent' class='tabbed_content'>
<div id='tabs' class='tabs'>
<div class='moving_bg'>
</div>
</div>
<div id='contentID' class='slide_content'>
<div id='tabsliderID' class='tabslider'>
</div>
</div>
</div>
现在onStart我将使用jQuery追加一些动态创建的DOM元素.我这样做是通过调用Page_Load方法(ASP)中的两个js函数来实现的.然后我需要初始化几个脚本(tabbedContent和iNettuts).
问题是这些脚本只有在创建整个页面后才需要初始化 – 包括动态创建的内容 – 所以我可以使用$(document).ready,当我使用$(window).load时,它有时会起作用,有时它会没有.
我一直在谷歌搜索它至少两周,但仍然没有.我该怎么办?是不是jQuery应该处理这个问题?如果没有..有任何解决方法吗?
PS.试着让它在IE7-8,Chrome 10和FF 6中运行
顺便说一句,一旦我实现这一点,我将需要做一些Web服务调用来从数据库中获取数据.这会影响行为吗?我应该期待更多头痛吗?
解决方法:
经过对你的建议的一些研究和一个非常漫长的夜晚实施Radus建议 – 这可能被解释为每个要加载的元素的标志 – 我开始问自己:如果ready()有一个标志怎么办?在这种情况下,我不应该担心初始化的时间.事实证明,这个标志确实存在,它被称为holdReady().
基本上,它会阻止ready()事件启动,直到标志设置为false.
“$.holdReady()方法允许调用者延迟jQuery的ready事件.这个高级功能通常由动态脚本加载器使用,它们希望在允许ready事件发生之前加载其他JavaScript(如jQuery插件),即使DOM也是如此这个方法必须在文档的早期调用,例如在jQuery脚本标记之后立即调用.在ready事件已经触发后调用此方法将无效.“[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)不会触发全部内容,希望文章能够帮你解决c# – $(window).load(handler)不会触发所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。