Javascript 用jquery替换href单击行为

Javascript 用jquery替换href单击行为,javascript,jquery,Javascript,Jquery,作为练习,我试图使导航栏中的链接收缩到content div,使用ajaxpage()将页面加载到content中,然后将其滑回。我正在使用以下命令: 编辑:我意识到我可能需要回调函数中的所有内容,所以我解决了这个问题。不过,这个电话仍然不起作用 $(document).ready(function() { $("a.link").click(function() { //... return false; }); $("#navbar a").click(func

作为练习,我试图使导航栏中的链接收缩到content div,使用ajaxpage()将页面加载到content中,然后将其滑回。我正在使用以下命令:

编辑:我意识到我可能需要回调函数中的所有内容,所以我解决了这个问题。不过,这个电话仍然不起作用

$(document).ready(function()
  {
  $("a.link").click(function() { 
    //...
    return false;
});
  $("#navbar a").click(function(){
    $("#content").slideUp(500,function(){
        var a_href = $(this).attr('href');
        ajaxpage(a_href, 'content');
        $("#content").slideDown(500);
        });
  });
});
链接为:

<a class="link" href="home.php">Home</a>

当我声明该变量并通过alert()发送它时,它会显示“undefined”。我猜我没有正确地获取属性,所以这就是它挂起的地方!我如何正确地获取您单击的链接的href属性?

我很确定您真正想要的是捕获所单击元素的href

$("#navbar a").click(function(){
    var a_href = $(this).prop('href');
    $("#content").slideUp(500,function(){
        ajaxpage(a_href, 'content');
        $("#content").slideDown(500);
    });
});

但是我们要明确的是,在ajax调用返回任何数据之前,
$(“#content')。slideDown(500)
;就要开火了。您需要将回调添加到
ajaxpage
以接受作为
$.ajax()
的成功函数,这样您就可以在单击使用
attr()
后确定href时确定何时滑下()


您的AJAX调用可能失败,请为
ajaxpage
函数发布代码。我还可以告诉你,这个调用可能是异步的,所以你的
slideDown
应该在AJAX回调中。是的,我刚刚解决了这个问题!ajax调用工作正常,因为我可以在a href中使用它:href=“javascript:ajaxpage('home.php','content')”您能用小提琴分享html吗?
$("#navbar a").click(function(){
    var a_href = $(this).prop('href');
    $("#content").slideUp(500,function(){
        ajaxpage(a_href, 'content');
        $("#content").slideDown(500);
    });
});
$("#navbar a").click(function(){
    var a_href = $(this).attr('href');
    $("#content").slideUp(500,function(){
        ajaxpage(a_href, 'content');
        $("#content").slideDown(500);
        });
  });