I have the following code:
HTML:
<ul id="main-menu">
<li><a href="#page-1" class="slide-item selected">page 1</a></li>
<li><a href="#page-2" class="slide-item">page 2</a></li>
<li><a href="#page-3" class="slide-item">page 3</a></li>
<li><a href="#page-4" class="slide-item">page 4</a></li>
</ul>
<div class="test">
<div id="page-1" class="page">
<div class="page-container">
<h3>page 1</h3>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Commodi consequatur deleniti eum illo itaque
iusto officia soluta, veritatis? Ab aliquam autem cum doloribus eaque eum in itaque natus rem, vero.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Commodi consequatur deleniti eum illo itaque
iusto officia soluta, veritatis? Ab aliquam autem cum doloribus eaque eum in itaque natus rem, vero.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Commodi consequatur deleniti eum illo itaque
iusto officia soluta, veritatis? Ab aliquam autem cum doloribus eaque eum in itaque natus rem, vero.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Commodi consequatur deleniti eum illo itaque
</p>
</div>
</div>
</div>
JQUERY:
$.fn.insertAt = function(index, elements){
var children = this.children();
if(index >= children.size()){
console.log(index+'>='+children.size());
this.append(elements);
return this;
}
var before = children.eq(index);
$(elements).insertBefore(before);
return this;
}; //http://upshots.org/javascript/jquery-insert-element-at-index
jQuery('.slide-item').on('click', function(){
var item = jQuery('a[href="'+jQuery(this).attr('href')+'"]').parent();
var index = jQuery("ul li").index(item);
//console.log(index);
var target = jQuery(this).attr('href').substr(1);
if(jQuery(jQuery(this).attr('href')).length){
console.log('loaded');
}else {
jQuery.get("pages/"+target+".html", function(data){
jQuery('.test').insertAt(index, data);
});
}
return false;
});
Basically as you can probably see based on which link you click it loads a page, Now my actual question is:
Is there anyway to keep them in order?
For example if i click the links in this order 1,4,2,3 then that's the order the pages get appended to the page:
<div id="page-1" class="page">
<div id="page-4" class="page">
<div id="page-2" class="page">
<div id="page-3" class="page">
However i need it to be independent of the order you click the links in.. so for example if i click 1,3,2,4 then i need the pages to append in order (1,2,3,4):
<div id="page-1" class="page">
<div id="page-2" class="page">
<div id="page-3" class="page">
<div id="page-4" class="page">
I have recently tried to do it through index, by getting the index of the clicked items li and then trying to use the insertAt function i found here to insert the div at that index... But it does not work entirely for example if i click 4 then 3 gets appended after 4.
Any Help Would be Greatly Appreciated.