2013-05-06 181 views
2

我有一個頁面,其中包含所有用戶的下拉菜單。當一個人選擇下拉列表中的某個人時,我會發起一個Ajax呼叫以獲取用戶的信息。一切正常。我試圖顯示ajax調用的結果在一個滑落所有非常喜歡的div。div滑落的jquery ajax結果

我想這:

function getInfo(id) 
{ 
     $.ajax({ 
        type: "GET", 
        url: "users/userInfo.php", 
        data: "userId=" + id, 
        success: function(result){ 
        $("#userData").html(result); 
        } 
       }); 
$("#userData").hide(); 
$("#userData").slideDown('slow'); 
}; 

和第一選擇一個人做,它不會滑動,它只是出現。然而,如果該人選擇不同的選項,則該幻燈片完美地工作。我怎麼能得到第一個Ajax響應幻燈片?

我添加了.hide(),因爲我讀過它必須隱藏才能滑動。我嘗試了animate(),那是一場災難......

+1

在ajax成功函數中隱藏,追加和向下滑動。 – tymeJV 2013-05-06 15:47:34

回答

6

您需要重新排列通話。將hide移至ajax調用之前。然後移動slidedown到成功回調的內部:

function getInfo(id) 
{ 
    $("#userData").hide(); 
    $.ajax({ 
      type: "GET", 
      url: "users/userInfo.php", 
      data: {userId: id}, 
      success: function(result){ 
       $("#userData") 
        .html(result) 
        .slideDown('slow'); 
     } 
    }); 
}; 
+0

天才。謝謝! – bart2puck 2013-05-06 15:52:42

+0

很高興工作。勾選複選標記以選擇答案。 – 2013-05-06 18:23:31

0

我嘗試了兩個函數hide,然後slidedown在我的主頁Ajax調用用於導航,但沒有成功。 Here是我的網站,當你點擊下載時,你會發現它只能在第一次使用。當你再次點擊時,它將被隱藏。

Here是我的js,希望你能給我個提示。

我附上被稱爲點擊下載時的js函數:

function download() { 

//$('#download').hide(); 

$.post(ajfile+'download', function(res) { 

    $(".container").css("display","none"); 

    $('#download').html(res); 
}); 

}

我附上PHP代碼來調用JS與鏈接:

<div id="header" > 

    <ul id="navigation"> 

    <?php 
    # links 
    foreach ($nav as $nav2) { 

     echo '<li><a href="#'.lcfirst($nav2).'">'.$voc[$nav2].' ('; 

     # ü not possible as dec value 
     if ($nav2== 'Aboutus') 
      echo 'u'; 

     else 
      echo lcfirst(substr($voc[$nav2],0,1)); 

     echo ') </a></li>'; 

    } ?> 

    </ul> 
    <input type=button onclick=download() value=Download(l)> 
</div> 

Here是我使用的教程演示瞭如何使用按鍵和鏈接創建網站。

基本上我使用a標籤內的href屬性作爲導航鏈接。此外,我有一個keypress聽衆事件。所以每次鏈接被點擊或按下一個鍵時,帶有ID的div被稱爲顯示內容。其餘內容用js css()方法隱藏。