显然很多人遇到了这个问题,但我还没有找到一个有效的解决方案.
我有一些代码需要在页面加载后运行,所以我把它卡在下面的块中:
$(document).ready(function() {
alert("Running initialization");
initialize();
});
function checkDivLoaded() {
if ( $('#footer').length == 0) $.error( 'not ready' );
}
function initialize() {
try{
checkDivLoaded();
...more code here
} catch (err) {
setTimeout(initialize, 200);
}
}
Run Code Online (Sandbox Code Playgroud)
这适用于所有浏览器,IE除外.在那里,代码根本不执行.
这段代码位于我可以放置的页面的最低点(使用Zend Framework和特定于页面的ready()函数意味着它可以在页面上有多低).我已经检查了js文件的包含,这些文件都是从本地版本加载的,并且它们都有表单
<script type="text/javascript" src=""></script>
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
注意
当我在IE中打开调试器时,这开始正常工作.
我注意到在某些地方,jQuery代码包含在一个自动调用函数中,如下所示.为什么这样做,在什么情况下这是有用的,在什么情况下是不必要的样板?
function( $ ) {
...
}( jQuery );
Run Code Online (Sandbox Code Playgroud) 在下面的代码中,有两个'e',它们是关于相同的对象/类型还是实际上关于不同的东西?
(function(e) {
var t = {
init: function() {
e(".pic").length && this.show()
}
};
window.Booth = t;
})(jQuery);
Run Code Online (Sandbox Code Playgroud)
另外,我对上面的代码片段的整体语义有点困惑,那里的任何文档都可以解释它?