Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.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 如何在单击时重新加载div内容_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 如何在单击时重新加载div内容

Javascript 如何在单击时重新加载div内容,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个jQuery脚本,可以将内容加载到div中。当您单击菜单项时,内容会加载到contentarea中,URL也会更新。那部分工作得很好。然而,我也希望能够在内容加载到div中后单击div的内部,并在其位置加载另一个页面。例如,表单页面被加载到contentarea中,表单页面内部有一个指向contact us页面的链接。当我点击链接时,我希望表单页面从内容区域中清除,并将联系人页面加载到位。请参见下图: 按照现在设置脚本的方式,仅当我从div外部单击时才会加载内容 以下是我需要修改的代码:

我有一个jQuery脚本,可以将内容加载到div中。当您单击菜单项时,内容会加载到contentarea中,URL也会更新。那部分工作得很好。然而,我也希望能够在内容加载到div中后单击div的内部,并在其位置加载另一个页面。例如,表单页面被加载到contentarea中,表单页面内部有一个指向contact us页面的链接。当我点击链接时,我希望表单页面从内容区域中清除,并将联系人页面加载到位。请参见下图:

按照现在设置脚本的方式,仅当我从div外部单击时才会加载内容

以下是我需要修改的代码:

<script type="text/javascript">
//Jquery loader
function getHash() {
    return window.location.hash
}

$("a").on("click", function (e) {

    page = this.href.replace("#", "") + ".html",
        hash = $(this).prop("hash");


    $('#contentarea').load(page, function () {
        if (page.match("home.html")) {
            history.pushState('', document.title, window.location.pathname);
        } else {
            location.hash = hash;
        };



    });

});

//on pageload

history.pushState
var hash = getHash();
if (hash) {
    $("a[href='" + hash + "']").trigger("click");
} else {
    $("a[href='#home']").trigger("click");
}
</script>

任何帮助都将不胜感激

由于您使用的是jQuery,我建议:

$(document).ready(function() {
    $(document).on( 'click', 'a', function( e ) {
        $('#contentarea').load( e.target.href );
    });
});
但是,如果您正在创建一个应用程序,并且您正在全局应用它,那么我将重新考虑您的结构,以避免以后对代码进行重大更改。我已经传递了这一点,因为如果页面/状态变量存在,您必须管理它们的状态变量:例如错误、标题、url,以及明显的内容,并确定它们中的哪一个是活动的,或者不传递到下一个页面。然后你必须过滤你不想传播到你的历史状态处理程序的链接,因为你只是不想

在某些情况下,您无法将现有框架应用于您的项目,因为最好的方法是在您的框架上使用它们的代码是的,创建您自己的框架


我希望这能帮助你!:

这回答了你的问题吗?