2013-03-26 100 views
0
$('#link1').click(function() { 
    $.ajax({ 
    url: 'index.php?do=link1', 
    type: 'POST', 
    success: function(data) { 
     blahblah 
    }, 
    }); 
}); 

我將如何使這更普遍?使用2個鏈接來供電一個jQuery的AJAX功能

我希望有多個鏈接,進入一個Ajax調用,但使用調用它的鏈接的id URL發生變化......(希望是有道理的)

<a href="#" id="ajax-doit1"> one </a> 
<a href="#" id="ajax-doit2"> two </a> 

如果ID開頭「ajax-」然後調用Ajax和AJAX改變依賴於後「ajax-」 所以Ajax的doit1將有index.php文件的URL部分的網址是什麼?做= doit1

是這個可能?

對不起,如果愚蠢的問題,新的jQuery。

回答

0

你可以這樣做:

html:

腳本:

$("a[id^='ajax-']").click(function() { 
    var link=this.href; 
    $.ajax({ 
     url: link, 
     type: 'POST', 
     success: function(data) {blahblah}, 
    }); 
}); 

$( 「一個[ID^= 'ajax-']」)選擇與以 「ajax-」 開頭的ID的鏈接。

[更新]來獲取文本後 「ajax-」 改變這一行:

var link='index.php?do='+this.id.replace(/ajax-/,""); 
+0

榮譽用於提供基於jQuery的解決方案,雖然它不是100%我正在尋找, 你可以在「ajax-」而不是href之後得到文本嗎? – 2013-03-26 05:47:54

+0

我已經更新了我的答案。 – Christophe 2013-03-26 15:12:13

+0

謝謝,在jsfiddle中工作正常,並且完全符合我的要求,雖然在本地它不起作用,但在我的最後:S – 2013-03-26 16:33:08

0

一概而論,你可以添加自己返回功能的功能:

function makeEvent(linkName) { 
    return function() { 
    $.ajax({ 
     url: 'index.php?do=' + linkName, 
     type: 'POST', 
     success: function(data) { 
     blahblah 
     }, 
    }); 
    } 
} 

$('#link1').click(makeEvent('link1')) 
$('#link2').click(makeEvent('link2')) 
0

HTML:

<a href="#" class="ajax" id="ajax-doit1"> one </a> 
<a href="#" class="ajax" id="ajax-doit2"> two </a> 

JS:

$('.ajax').click(function() { 
    var suffix = $(this).attr('id').substr(5); 
    $.ajax({ 
    url: 'index.php?do='+suffix, 
    type: 'POST', 
    success: function(data) { 
     blahblah 
    }, 
    }); 
}); 
0

試試這個

 $('a').click(function() { 
      var id = $(this).attr('id'); 
      var link = id.split('-'); 
      $.ajax({ 
      url: 'index.php?do='+link[1], 
      type: 'POST', 
      success: function(data) { 
       blahblah 
      }, 
      }); 
     });