[英]JavaScript won't work unless I use alert()!
我不时遇到这个问题,但我不知道如何解决。 这是我失败的代码:
function on_lightbox_open() {
system.contextBrowserInit();
updateUrl(year + '/' + month + '/' + id);
ads.reload();
system.analytics.reload();
FB.XFBML.parse($('#bottom_flap .fb_like').get(0)); // facebook
$.ajax({ url: 'http://platform.twitter.com/widgets.js', dataType: 'script', cache: true });
$('#lightbox .close').live('click', function(){
$.modal.close();
});
}
如果我像这样一开始就添加了警报:
function on_lightbox_open() {
alert('i work now');
system.contextBrowserInit();
updateUrl(year + '/' + month + '/' + id);
ads.reload();
system.analytics.reload();
FB.XFBML.parse($('#bottom_flap .fb_like').get(0)); // facebook
$.ajax({ url: 'http://platform.twitter.com/widgets.js', dataType: 'script', cache: true });
$('#lightbox .close').live('click', function(){
$.modal.close();
});
}
它神奇地工作。 如何使其在没有烦人的随机警报的情况下工作?
也许您使用.live()需要一个完全加载的文档,而警报只会使浏览器多花一些时间。 尝试用$(document).ready();包围;
资料来源: jQuery驱动的应用程序。 没有alert()将无法工作
代替:
<script>
system.contextBrowserInit();
//etc
</script>
试试这个(HTML doctype):
<script defer>
system.contextBrowserInit();
//etc
</script>
XHTML doctype的正确语法是
<script defer="defer">
system.contextBrowserInit();
//etc
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.