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

これをもっと普遍的にするにはどうすればよいですか?

1つのajax呼び出しに入る複数のリンクが欲しいのですが、それを呼び出したリンクのIDを使用してURLが変更されます...(それが理にかなっていることを願っています)

すなわち

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

IDが「ajax-」で始まる場合はajaxを呼び出し、ajaxは「ajax-」の後の部分に応じてURLを変更するため、ajax-doit1のURLはindex.php?do=doit1になります。

これは可能ですか?

ばかげた質問ならごめんなさい、jqueryは初めてです。

4

4 に答える 4

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'))
于 2013-03-26T05:23:20.920 に答える
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
    },
  });
});
于 2013-03-26T05:23:25.337 に答える
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-']")は、"ajax-"で始まるIDを持つリンクを選択します。

[更新]「ajax-」の後のテキストを取得するには、次の行を変更します。

var link='index.php?do='+this.id.replace(/ajax-/,"");
于 2013-03-26T05:25:57.737 に答える
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
            },
          });
        });
于 2013-03-26T05:27:33.760 に答える