2013-06-25 74 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(){});'是一樣的..請參閱我的編輯 –