2016-07-07 14 views
1

同じ<>を使用する複数の動的リンクを出力しています。私のAJAX呼び出しはすべてのリンクの細かいコンテンツをうまく読み込みます。しかし、ajaxコンテンツを表示する新しいdivは、他のリンクがクリックされたときに最初のリンクのIDのみを出力します。私はこのIDをコンソールに表示するためにこれを使用していますconsole.log($('[data-taskid]').first().attr('data-id'));私はどのように私のAjaxビューをクリックしたリンクのIDを渡すことができますか?みんなありがとう!最初の要素のidを渡すだけのAjax呼び出し

<div id="content"></div> 

PHP

$string .= '<a class="hrefid" data-id="'.$name["id"].'" href="#link">'.$name["name"].'</a>'. 

のjQuery

$('.hrefid').on('click', function (e) { 
    var load = $(e.target).attr("href"); 
    if(load == "#link") { 
     $.ajax({ 
      type: 'post', 
      url: "/page/test/"+$(this).parents("[data-id]").attr("data-id"), 
      complete: function (event) { 
       $("#content").contents().remove(); 
       $("#content").append(event.responseText); 


      } 
     }); 
    } 
}); 
+2

あなたのコードで 'parents()'の目的は何ですか? – showdev

+0

あなたは 'e.target'の代わりに 'this'を使うべきですので、あなたのコードは' var load = $(this).attr( 'href'); ' –

+0

と' .parents(); 'は必須ではありません –

答えて

1

私が参考に$(this)を使用していないことを確認してください、$(この)参照は一度chnagedますあなたはajaxで$(this)を使用しますが、ajaxではなくメインセレクタを指します。

 $('.hrefid').on('click', function (e) { 
       var $this = $(this); 
       var load = $this.attr("href"); 
       if(load == "#link") { 
        $.ajax({ 
         type: 'post', 
         url: "/page/test/"+ $this.attr("data-id"), 
         complete: function (event) { 
          $("#content").contents().remove(); 
          $("#content").append(event.responseText); 
         } 
        }); 
       } 
     }); 
+0

リンクがクリックされたときにURLのidを変更しますが、idをajaxビューに渡さないにもかかわらずvar '$ this = $(this); 'を使用しています – DN0300

+0

これを試してください:$ this.data ( 'id')と$ this.prop( 'data-id')を試してみてください – Niyati

+0

私はどちらもうまくいっていないのですが、両方を使って正しいビューを読み込めましたが、最初のリンクよりもid – DN0300

関連する問題