2016-05-17 4 views
0

Ich versuche, jedes Element mit demselben Attribut zu durchlaufen und einen Ajax-Aufruf zu machen, wenn ein onclick-Ereignis in einem der Elemente ist.Wie über HTML-Elemente mit dem gleichen Attribut mit jquery iterieren und OnClick-Ereignis suchen?

$(document).ready(function(){ 
    $.each($("#workon"),function(){ 
     $(this).find("#wanalearn_request").click(function(e){ 
      e.preventDefault(); 
      var this_ = this; 
      # ajaxPost is just a custom ajax post function 
      ajaxPost($(this).attr('href'),{},function(content) { 
      $(this_).find('span').text(content.wanalearns_count); 
      }); 
     }); 
    }); 
}); 
+1

Dom Elemente sollten eindeutige IDs haben. Das heißt, '' '$ .each ($ (" # workon ")' '' ist konzeptionell falsch. Sie sollten Klassen oder benutzerdefinierte Datenattribute verwenden, um sie zu markieren. –

Antwort

0

try 'auf' statt:

$('#workon').on('click', '#wanalearn_request', function (e) { 

    e.preventDefault(); 
    e.stopPropagation(); 

    var link = $(e.target).closest('a'); 

    $.post(link.attr('href'), '' /* the payload must be a serialized query string in this case */, function (content) { 

    link.find('span').text(content.wanalearns_count); 

    }); 

}); 
+0

Unter Verwendung des obigen Codes wird nur das erste Element der Reihe von Element mit demselben Attribut. –