2017-05-02 2 views
1

So arbeite ich auf einer Sharepoint-Website .. Ich bin völlig neu in Javascript. Ich habe eine jQuery verwendet, die ich gefunden habe, um eine Expand/Collapse-Funktion zu aktivieren, die an einen Überschriften-Typ gebunden ist. Wenn auf eine Überschrift geklickt wird, wird der gesamte Absatzinhalt unterhalb der Überschrift erweitert oder minimiert.Überschrift Expand/Collapse Jquery arbeiten, aber ist standardmäßig erweitert, ich brauche es standardmäßig minimiert

Es funktioniert gut, das einzige Problem ist, dass beim Laden der Seite der gesamte Inhalt standardmäßig erweitert wird und dann einen Moment später, nachdem die Seite geladen wurde, minimiert wird. Beim Laden sieht es schlampig aus, sodass ich standardmäßig alles zusammenklappen lassen möchte.

Ich brauche auch nicht die Funktion, die Expand/Collapse im Bearbeitungsmodus oder eine Wikipage deaktiviert, wenn das Problem einfacher ist. Hier

ist das Skript Ich verwende:

<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(); Dies ist der Grund, nach dem Laden der Seite zu expandieren und zu reduzieren. Sie müssen also überprüfen, ob der Inhalt erweitert wird, und dann nur work.so komprimieren. Nach dem Laden der Seite sollten Sie den Befehl collapse aufrufen und die UI.toggleContentHeaders(); – Maharajan

+0

Geben Sie das Beispiel Geige für Ihr Problem –

+0

Versuchen Sie '.slideToggle (100)' aus 'collapseContentHeaders()'? –

Antwort

0

nur löschen, wenn Anweisung

if (index > 0) { 

Also ich olny sein muss $(this).toggleClass('expand').nextUntil('h2').slideToggle(100);

Verwandte Themen