2011-05-31 46 views
2

這裏內jQuery函數是我的代碼:稱之爲 「A」 標籤 「的onclick」

<a href='P001' class='basic'>Read More</a><br> 
<a href='P002' class='basic'>Read More</a><br> 
<a href='P003' class='basic'>Read More</a><br> 

我的腳本:

$('.basic').click(function(id){ 
    $.ajax({ 
     url: 'display_pro.php?id='+$('.basic').attr('href'), 
     success: function(data) {alert(data);} 
    }); 
}); 

當我點擊的所有鏈接它總是得到 'P001'。 有什麼問題? 感謝您的幫助。

回答

6
$('.basic').click(function(e) { 
    var link = this; // <-- best practice 
    $.ajax({ 
     url: 'display_pro.php?id=' + link.href, // use link here... 
     success: function(data) {alert(data);} 
    }); 
    return false; // <-- needed, prevents page from jumping into another page.. 
}); 
+1

剛剛提及相同。太多的生產者:P。傷心沒有人cud意識到ajax調用是異步的(默認情況下)。因此,即使在瀏覽器處理它之前,它將首先從事件處理程序返回,並按下「href」屬性中指定的url,但不能忽略它。所以,事實證明,AJAX調用從未發生過。 – a6hi5h3k 2011-05-31 03:44:31

4

相反的+$('.basic').attr('href')你應該做的:

$(this).attr('href') 

否則,你再次要求設定與類爲「基本」,並抓住了第一個的值項。 $(this)(或e.target)確保您獲得當前點擊的項目。此外,FYI,傳遞給函數的參數不是id - 它是一個事件對象。

0

首先,請把你的代碼的代碼裏面滴答``

<a href='P001' class='basic'>Read More</a> 
<a href='P002' class='basic'>Read More</a> 
<a href='P003' class='basic'>Read More</a> 

這裏的答案:

$('.basic').click(function (id) { 
    $.ajax({ 
     url: 'display_pro.php?id=' + $(this).attr('href'), //use $(this) so it knows which link you clicked on 
     success: function (data) { 
      alert(data); 
     } 
    }); 
}); 
1

您需要使用$(本).attr( 'href' 屬性)代替$( '基本 ')。ATTR(' href' 屬性)

$('.basic').click(function(id){ 
     $.ajax({ 
      url: 'display_pro.php?id='+$(this).attr('href'), 
      success: function(data) { 
       alert(data); 
      } 
     }); 
});