2017-07-18 1 views
1

Ich habe dieses Beispiel erstellt, wo ich versuche, auf Click-Ereignis für dynamisch erstellt div, aber ich bin nicht in der Lage, den Parameter Wert, der bei der Einstellung Click-Ereignis übergeben. In diesem Beispiel habe ich Array verwendet, aber in Wirklichkeit bekomme ich Json von Web-Service.Div erstellen dynamisch und Onclick-Ereignis mit Parametern

$(document).ready(function() { 
 
    myfunction(); 
 
}); 
 

 
function myfunction() { 
 
    var cars = ["Saab", "Volvo", "BMW"]; 
 

 

 
    for (var i = 0; i < cars.length; i++) { 
 
     $('<div/>', { 
 
      id: 'pnlmyDiv_' + i, 
 
      html: '<b>Click Me ' + i + '</b><br>', 
 
      style: 'padding:10px;border-width:1px;border-style:solid;margin-bottom:5px;cursor:pointer;' 
 
     }).appendTo('#pnlParent'); 
 

 

 
     $("#pnlmyDiv_" + i).on("click", function() { 
 
      fnGetMessages(cars[i]) 
 
     }); 
 
    } 
 

 

 
} 
 

 
function fnGetMessages(car) { 
 
    alert(car); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div id="pnlParent" style="padding:5px;border:solid"> 
 
</div>

+0

Verwendung eines Verschlusses (wie in der doppelten I verbunden sind) oder alternativ eine einzelne delegierte Ereignishandler verwenden und setzen Benutzerdefinierte Metadaten in "Daten" -Attributen für die Elemente, die Sie an das DOM anhängen. Persönlich würde ich das letztere verwenden –

Antwort

2

Versuchen Sie diesen Code:

$(document).ready(function() { 
 
     myfunction(); 
 
    }); 
 

 
    function myfunction() { 
 
     var cars = ["Saab", "Volvo", "BMW"]; 
 

 

 
     for (let i = 0; i < cars.length; i++) { 
 
      jQuery('<div/>', { 
 
    \t \t \t \t id: 'pnlmyDiv_' + i, 
 
    \t \t \t \t html: '<b>Click Me ' + i + '</b><br>', 
 
    \t \t \t \t style: 'padding:10px;border-width:1px;border-style:solid;margin-bottom:5px;cursor:pointer;' 
 
      
 
     }).appendTo('#pnlParent'); 
 

 

 
      $("#pnlmyDiv_" + i).on("click", function() { 
 
       fnGetMessages(cars[i]) 
 
      }); 
 
     } 
 

 

 
    } 
 

 
    function fnGetMessages(car) { 
 
     alert(car); 
 
    }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
 
<div id="pnlParent" style="padding:5px;border:solid; height:150px;"> 
 
</div>

+0

wow, dass "let" Ding Magie für mich macht. – SAURABH

Verwandte Themen