0

演習として、navbar 内のリンクを 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>

テストすると、コンテンツ div が正しくスライドアップしますが、そこにとどまり、他に何も起こりません。ここで何が間違っていましたか?

編集:いくつかのデバッグの後、これが原因のようです:

var a_href = $(this).attr('href');

その変数を宣言して alert() を介して送信すると、「未定義」と表示されます。私は属性を適切に取得していないと推測しているので、ここでハングアップします! クリックしたリンクの href 属性を正しく取得するにはどうすればよいですか?

4

2 に答える 2

2

あなたが本当に望んでいるのは、クリックされた要素の 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()_slideDown()

于 2013-07-29T02:26:48.707 に答える
0

href を決定するときは、クリック後に を使用する必要がありますattr()

$("#navbar a").click(function(){
    var a_href = $(this).attr('href');
    $("#content").slideUp(500,function(){
        ajaxpage(a_href, 'content');
        $("#content").slideDown(500);
        });
  });
于 2013-07-29T02:29:49.490 に答える