使用2个链接为一个jquery ajax函数供电

时间:2013-03-26 05:18:37

标签: javascript jquery

$('#link1').click(function() {
   $.ajax({
    url: 'index.php?do=link1',
    type: 'POST',
    success: function(data) {
      blahblah
    },
  });
});

我将如何使其更具普遍性?

我希望有多个链接,进入一个ajax调用,但url使用调用它的链接的id进行更改...(希望有意义)

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

如果id以“ajax-”开头,则调用ajax,ajax根据“ajax-”之后的部分更改url 所以ajax-doit1会有一个index.php的网址?do = doit1

这可能吗?

抱歉,如果愚蠢的问题,jquery的新手。

4 个答案:

答案 0 :(得分: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'))

答案 1 :(得分: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
    },
  });
});

答案 2 :(得分:0)

你可以这样做:

HTML:

<a href="index.php?do=link1" id="ajax-doit1"> one </a>
<a href="index.php?do=link2" id="ajax-doit2"> two </a>

脚本:

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

$(“a [id ^ ='ajax-']”)选择ID为“ajax - ”的链接。

[更新]要在“ajax-”之后获取文本,请更改此行:

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

答案 3 :(得分: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
            },
          });
        });