2017-01-05 2 views
0

Ich entwickle gerade eine Chrome-Erweiterung. und meine Chrome-Erweiterung hat einen Tisch mit Tasten darauf. Aber leider ist die meine Tasten nicht funktionieren und es gibt keine Fehler in der Konsole ..Mein Knopf funktioniert nicht mit jquery

Meine Frage ist, warum meine Taste ID in meinem address.js "copy" pflegt eine ausgelöste Alarm

Dies ist meine Heimat .html in meinem chrome-Erweiterung

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 

    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"> 


    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 

    <script src= "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" ></script> 

<script type="text/javascript" src = "address.js"></script> 

    </head> 
    <body> 
    <p><br/><br/></p> 
    <div class = "container"> 
      <table id="example" class = "table table-bordered table-striped table-hover"> 
       <thead> 
        <tr> 
        <th>Video Name</th> 
        <th>File Name</th> 
        <th>Copy</th> 

        </tr> 

       </thead> 

      </table> 
    </div> 



    </body> 
</html> 

Und das ist mein address.js

$.getJSON("http://mlearningessentials.com/vid.php", function(data){ 

    var items = []; 

    $.each(data, function(key, val){ 
    items.push("<tr>"); 
    items.push("<td id=''"+key+"''>"+val.video_name+"</td>"); 
     items.push("<td id=''"+key+"''>"+val.file_name+"</td>"); 
      items.push("<td>"+'<button type="button" class="btn btn-primary" id="copy">Copy</button>'+"</td>"); 



     items.push("</tr>"); 
}); 

    $("<tbody/>", {html: items.join("")}).appendTo("table"); 

}); 


$(document).ready(function(){ 
    $("#copy").click(function(){ 
     alert('copied'); 


    }); 
    }) 
+1

Lernen [Event Delegation] (http://learn.jquery.com/events/event-delegation/) verwenden, um Code '$ (document) .auf (" Klick "," # copy ", function() {' – Satpal

Antwort

2

Sie benötigen Ereignis dynamically

$(document).on("click","#copy",function(){ 
    alert('copied'); 
}); 

Lesen Sie mehr über event delegation auslösen zu verstehen, wie es funktioniert.

+0

Danke, Sir, es funktioniert jetzt. und ich werde diese Doku lesen :) – VLR

1

Bei dynamisch hinzugefügten Elementen müssen Sie den Klick etwas anders binden (Ereignisdelegation). Versuchen Sie folgendes:

$(document).on("click", "#copy", function() { 
    alert('copied'); 
}); 
1

Durch dynamische DOM versuchen diese

$(document).on("click", "#copy", function() { 
    alert('copy'); 

});