2017-05-02 54 views
1

所以我正在一個SharePoint站點..我完全是新的JavaScript。我一直在使用我發現的jQuery來啓用與標題類型綁定的展開/摺疊功能。點擊標題時,標題下的所有段落內容都會展開或摺疊。標題展開/摺疊jquery工作,但默認擴展,我需要它默認摺疊

它運行良好,唯一的問題是當頁面加載時,默認情況下所有內容都被展開,然後在頁面加載完成後立即崩潰。它加載時看起來馬虎,所以我想默認情況下一切都崩潰了。

我也不需要在編輯模式或wikipage中禁用展開/摺疊的功能,如果這使得這個問題更簡單。

這裏是我使用的腳本:

<script language="javascript" type="text/javascript" 
src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.0.2.min.js"></script> 
<script language="javascript" type="text/javascript"> 

$(document).ready(function() { 
var inEditMode = Utils.checkPageInEditMode(); 
// Prevent the collapsing of <h2> blocks when in SharePoint's [Edit Mode] 
if (!inEditMode) { 
UI.collapseContentHeaders(); 
UI.toggleContentHeaders(); 
} 
}); 

var UI = { 
collapseContentHeaders: function() { 
$('#DeltaPlaceHolderMain h2').each(function (index, value) { 
// Collapses all <h2> blocks 
{ 
$(this).toggleClass('expand').nextUntil('h2').slideToggle(100); 
} 
}); 
}, 

toggleContentHeaders: function() { 
// Toggles the accordion behavior for <h2> regions onClick 
$('#DeltaPlaceHolderMain h2').click(function() { 
$(this).toggleClass('expand').nextUntil('h2').slideToggle(100); 
}); 
} 
} 

var Utils = { 
checkPageInEditMode: function() { 
var pageEditMode = null; 
var wikiPageEditMode = null; 

// Edit check for Wiki Pages 
if (document.forms[MSOWebPartPageFormName]._wikiPageMode) { 
wikiPageEditMode = 
document.forms[MSOWebPartPageFormName]._wikiPageMode.value; 
} 
// Edit check for all other pages 
if (document.forms[MSOWebPartPageFormName].MSOLayout_InDesignMode) { 
pageEditMode = 
document.forms[MSOWebPartPageFormName].MSOLayout_InDesignMode.value; 
} 
// Return the either/or if one of the page types is flagged as in Edit Mode 
if (!pageEditMode && !wikiPageEditMode) { 
return false; 
} 
return pageEditMode == "1" || wikiPageEditMode == "Edit"; 
} 
} 
</script> 
+0

UI.collapseContentHeaders(); UI.toggleContentHeaders();這是在頁面加載後展開和摺疊的原因,因此您需要驗證內容是否展開,然後才摺疊work.so。在頁面加載後,您應該調用collapse並避免使用UI.toggleContentHeaders(); – Maharajan

+0

舉例爲你的問題小提琴 –

+0

嘗試從'collapseContentHeaders()'中省略'.slideToggle(100)'? –

回答

0

只要刪除if語句

if (index > 0) { 

所以我必須olny $(this).toggleClass('expand').nextUntil('h2').slideToggle(100);