Javascript jquery:如何阻止导航(链接/提交)?

Javascript jquery:如何阻止导航(链接/提交)?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我想将我的网站转换为单页应用程序。 我尝试做的是捕获导航过程: 例: 你知道如何防止默认点击(然后是表单POST和GET)并获取目标url,这样我就可以通过ajax将其加载并显示到我的div内容中吗?你可以将锚元素本身作为目标,而不是以unload方法为目标。例如: $("a").click(function(e){ e.preventDefault(); $("#mainContent").load($(this).attr("href")); }); 不过,这是非常通用的,

我想将我的网站转换为单页应用程序。 我尝试做的是捕获导航过程: 例:


你知道如何防止默认点击(然后是表单POST和GET)并获取目标url,这样我就可以通过ajax将其加载并显示到我的div内容中吗?

你可以将锚元素本身作为目标,而不是以
unload
方法为目标。例如:

$("a").click(function(e){
    e.preventDefault();
    $("#mainContent").load($(this).attr("href"));
});
不过,这是非常通用的,包括针对外部应用程序链接。因此,我建议使用
data
属性标记现有的锚,以确保只将特定链接转换为AJAX调用:

<a href="myData.php" data-loadajax="true">Change My Data</a>

$("a").click(function(e){
    if ($(this).data("loadajax")){
       e.preventDefault();
       $("#mainContent").load($(this).attr("href") + " #mainContent");
    }
});

$(“a”)。单击(功能(e){
if($(this.data(“loadajax”)){
e、 预防默认值();
$(“#mainContent”).load($(this.attr(“href”)+“#mainContent”);
}
});

我可能遗漏了一些东西,但您是否可以将jQuery放在锚上,例如$('a')。在('click',function(){//do ajax并使用return false;})上;
$( window ).unload(function(e) {
    e.preventDefault();
    e.stopPropagation();
    return false;
  return "Handler for .unload() called.";
});
$("a").click(function(e){
    e.preventDefault();
    $("#mainContent").load($(this).attr("href"));
});
<a href="myData.php" data-loadajax="true">Change My Data</a>

$("a").click(function(e){
    if ($(this).data("loadajax")){
       e.preventDefault();
       $("#mainContent").load($(this).attr("href") + " #mainContent");
    }
});