Javascript JS脚本没有';我在网站上单击“上一步”时无法工作
我在我的网站上创建导航。导航效果很好,但当我回到主站点时,js文件中的所有脚本都不起作用。我的导航脚本:Javascript JS脚本没有';我在网站上单击“上一步”时无法工作,javascript,jquery,Javascript,Jquery,我在我的网站上创建导航。导航效果很好,但当我回到主站点时,js文件中的所有脚本都不起作用。我的导航脚本: var default_content=""; $(document).ready(function(){ //Ajax navigate checkURL(); $('footer a').click(function(){ checkURL(this.hash); }); default_content = $('#login_box').html(); setInter
var default_content="";
$(document).ready(function(){
//Ajax navigate
checkURL();
$('footer a').click(function(){
checkURL(this.hash);
});
default_content = $('#login_box').html();
setInterval("checkURL()",250);
.........
方法:
var lasturl="";
function checkURL(hash)
{
if(!hash) hash=window.location.hash;
if(hash != lasturl)
{
lasturl=hash;
if(hash=="")
$('#login_box').html(default_content);
else
loadPage(hash);
}
}
function loadPage(url)
{
url=url.replace('#page','');
$.ajax({
type: "POST",
url: "include/help4meApi.php",
data: 'page='+url+'&tag=navigation',
dataType: "html",
success: function(msg){
if(parseInt(msg)!=0)
{
$('#login_box').html(msg);
}
}
});
}
问题是当我返回到主站点时脚本不起作用。问题来自这里
$('login_box').html(默认内容)代码>。调用.html()
时,绑定在元素中的事件将被清除
当您退回到主页面时,事件处理程序已经不在那里,因此您必须再次注册它
//For show and hide register values
$("#registerInputsBtn").click(function(){
$(".register_information").hide(1000);
$(".register_values").show(1000);
$("#firstname").focus();
});
在分配内容到#login_框
的代码段上再次注册。例如,快速修复:
if(hash==""){
$('#login_box').html(default_content);
$("#registerInputsBtn").click(function(){
$(".register_information").hide(1000);
$(".register_values").show(1000);
$("#firstname").focus();
});
}
但这里的代码并不是干巴巴的:(重新安排页面加载的流程,并建议将事件注册到正确的流程中。您能详细说明一下吗?您说它不起作用是什么意思?浏览器控制台中有任何错误?@trucik编辑此问题并添加您的演示HTML@Aminul点击页脚“Kontakt”,点击退格我点击“Zarejestruj”并没有发生任何事情,当你们刷新页面并再次点击“Zarejestruj”时,它就消失了works@MelanciaUK当我在nav上浏览并返回主站点时,scirpts不起作用。例如,在help4me.pl/login.php中,当您单击页脚中的元素并返回主站点时,“Zarejestruj”“按钮不起作用。当您刷新它时,它会起作用。这是因为当您单击“上一步”按钮时,浏览器会从其历史中呈现DOM。请尝试使用历史API来检测浏览器的状态,我不明白,这是怎么做的?”?