I am using an onhashchange plugin, but I have a problem to get it right when I want to load pages through ajax.
Here is my jquery,
$(document).ready(function(){
$(window).hashchange(function() {
var hash = location.hash;
var array_url = hash.split('#');
var page = $(array_url).last()[0];
$('#content').load( page + '.php', function(){
});
});
$('.clickme').click(function(){
var url = $(this).attr('href');
var array_url = url.split('#');
var page = $(array_url).last()[0];
location.hash = url;
$('#content').load( page + '.php', function(){
});
return false;
});
});
the html,
<a href="#1" class="clickme">1<a>
<a href="#2" class="clickme">2<a>
<div id="content">
</div>
The problem is the ajax page will be loaded twice or more when the link is clicked after the hash
has changed.
How can I fix this?
Thanks.
You are doing the load twice:
$(window).hashchange(function() {
var hash = location.hash;
var array_url = hash.split('#');
var page = $(array_url).last()[0];
$('#content').load( page + '.php', function(){ //ONCE
});
});
$('.clickme').click(function(){
var url = $(this).attr('href');
var array_url = url.split('#');
var page = $(array_url).last()[0];
location.hash = url; //GOTO HASH CHANGE ^^
$('#content').load( page + '.php', function(){ //TWICE
});
return false;
});