2013-06-25 71 views
1

我正在为我的妻子做一个简单的网页。延迟页面重新加载,直到jquery脚本完成它的工作

我使用这个脚本菜单:http://www.designchemical.com/lab/jquery-vertical-accordion-menu-plugin/examples/

因为我不想点击菜单后重新加载整个页面,我使用pjax方法(ajax + pushState

的链接页面,出现问题:http://sk-architekci.pl/sknowy2/ (请在IE中打开它,然后点击“PROJEKTY”菜单中的左边,然后做同样的在Firefox为例)

我的问题:

一切工作在支持pushState方法(是IE不支持它)的浏览器很好。在IE以外的每个浏览器中,当我点击菜单中的某个链接时,菜单缓慢扩展,内容被加载到正确的div。

在IE中,当我点击菜单中的某个链接时,脚本无法完成其工作,因为整个页面都会重新加载。菜单跳跃而不是缓慢重新加载。

我的问题:

是否有延迟页面重新加载,直到菜单脚本完成它的工作方式?或者也许还有其他一些“肮脏”,并不优雅,但对我的问题有效的解决方案。

我的JS:

$(document).ready(function ($) { 
    $('#accordion-1').dcAccordion({ 
     eventType: 'click', 
     autoClose: true, 
     saveState: true, 
     disableLink: false, 
     speed: 'fast', 
     showCount: false, 
     autoExpand: false, 
     cookie: 'dcjq-accordion-1' 
    }); 
}); 

我不是web开发人员或者程序员,我不知道jQuery的好,这就是为什么如果可能的话,请给我简单的答案。

感谢

+0

我不熟悉dcAccordian。但是,有一个'disableLink'的设置。如果将其设置为“真”,会发生什么? 'disableLink:true,//禁用父项的所有链接' – showdev

+0

disableLink:true - 这意味着脚本将禁用我的菜单中的所有链接,并且不会再被解释。这对我来说相当糟糕,因为这些链接必须处于活动状态才能将内容加载到我的页面中。这当然修理我的IE问题,但让我的meny对我无用嘿嘿。 – lukasz

回答

0

不知道这是否会工作,但你可以尝试是

在你的头标记的开头添加这样的:

$(function(){ 
    $('body').hide(); 
}); 

,并在最末尾,添加此:

$(document).ready(function(){ 
    $('body').show(); 
}); 

这将隐藏所有内容,直到所有脚本完成。我将此用作未格式内容闪光的解决方法。

+0

嗯......我应该把这个代码放在哪里?也许这会有所帮助,但我不知道它应该放在哪里? – lukasz

+0

在身体标签的末尾。 –

+0

'$(function(){});''和'$(document).ready(function(){});'是一样的..请参阅我的编辑 –