Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS脚本没有';我在网站上单击“上一步”时无法工作_Javascript_Jquery - Fatal编程技术网

Javascript 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

我在我的网站上创建导航。导航效果很好,但当我回到主站点时,js文件中的所有脚本都不起作用。我的导航脚本:

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来检测浏览器的状态,我不明白,这是怎么做的?”?