2017-08-23 3 views
1

Ich bin ein Anfänger in Javascript/Jquery. Ich möchte delegiertes Ereignis verwenden, weil ich eine dynamische Klasse erstellt habe und ich möchte seinen Datenwert darauf beziehen. Jetztdynamisch erstellte Elemente von Ajax nicht arbeiten mit delegierten Ereignis

ich so gemacht:

function getProducts(category_id) { 
    $("#product-list").empty(); 
    $.ajax({ 
     url:"{{ url('product') }}/" +category_id,   
     type:"GET", 
     dataType: "JSON",   
      success: function(data) { 
       if(data.length>0) { 
        for(i=0;i<data.length;i++) {       
         $('#product-list').append('<div class="col-md-3 col-sm-3 hero-feature">'+'<div class="thumbnail">'+'<img src="{{ url('image_files/') }}/'+ data[i]['featured_img'] +'" alt="">'+'<div class="caption">'+'<h4><a href="#" data-value="'+data[i]['product_id']+'" class="product-target">'+data[i]['product_name']+'</a></h4>'); 
        }      
       } else { 
         $('#product-list').append('<h3>Nothing to display</h3>') 
       } 
      } 
    }); 
} 

$(document).ready(function(){ 
    $('.caption').on('click','.product-target',function() { 
    var value = $(this).data("value"); 
    alert(value); 
    }); 
}) 

i den Wert der Daten-Wert erhalten möchten, die in der <a>-Tag ist.

Antwort

1

Sie müssen wie unten tun: -

$('#product-list').on('click','.caption .product-target',function() { 
    var value = $(this).data("value"); 
    alert(value); 
}); 

Es ist, weil .caption auch dynamisch hinzugefügt wird.

+0

lassen Sie mich es Sir versuchen. Danke für Ihre Antwort –

+0

Muss ich es auf document.ready Funktion setzen? –

+0

Danke, mein Herr. Es klappt. Danke für das Verständnis und die Hilfe für einen Anfänger –

Verwandte Themen