我经常遇到这个问题,我不知道如何解决它。这是我的代码失败:
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();
});
}
它神奇地起作用。如何在没有恼人的随机警报的情况下使其工作?
答案 0 :(得分:1)
也许您使用.live()需要一个完全加载的文档,警报只需要额外的时间购买浏览器。尝试使用$(document).ready();
答案 1 :(得分:0)
而不是:
<script>
system.contextBrowserInit();
//etc
</script>
试试这个(HTML doctype):
<script defer>
system.contextBrowserInit();
//etc
</script>
XHTML doctype的正确语法是
<script defer="defer">
system.contextBrowserInit();
//etc
</script>