Ich habe einige Javascript/Jquery, um eine Tabelle mit einigen Eingabedateien und eine Schaltfläche zu klonen. Nach dem Klonen scheint der Button nicht mehr zu funktionieren, wenn er dieselbe Klasse hat. Die Situation: Wenn Sie auf das Produkt hinzufügen klicken, wird eine Zeile unter der letzten Zeile kopiert, so dass ein Benutzer ein anderes Produkt zu der Option hinzufügen kann. Hier ein Beispiel: geklonten Knopf funktioniert nicht
Es gibt eine andere Taste unter diesen Produkten: Option erstellen. Diese Schaltfläche klont die erste Tabelle (Option) und hinter ihr unter der Schaltfläche. Aber nachdem es kopiert wurde, scheint die Schaltfläche "Add Product" nicht mehr zu funktionieren.
Ich habe keine Fehler, also weiß ich nicht, was ich falsch mache.
Dies ist der Code, den ich verwende, die Tabellen zu klonen:
<script type="text/javascript">
$(document).ready(function() {
$('.addproduct').click(function (e) {
// Clone a product and add it to the option.
e.preventDefault();
var item = document.getElementById('hiddenTemplate').cloneNode(true);
$('#hiddenTemplate').before(item);
$(item).removeAttr('id');
});
$('.addOption').click(function (e){
// Create a new option
e.preventDefault();
var item = document.getElementById('hiddenOption').cloneNode(true);
$('.newOption').append(item);
$(item).removeAttr('id');
$(item).addClass('tableOptions');
});
});
Könnte some1 mir erklären, was ich tue und was könnte eine Lösung sein? Mein Code ist nicht perfekt atm ich denke und ich bin offen für das Lernen!
Happy Coding!
'cloneNode() hinzufügen,' nicht Event-Handler nicht kopieren. Ich würde vorschlagen, jQuery '' clone (true) 'stattdessen zu verwenden, was tut oder delegierte Event-Handler verwendet. Letzteres wäre am einfachsten. –
Wenn Sie dynamisches HTML generieren, sind die Ereignisse nicht an sie gebunden, da alle Ereignisse begrenzt sind, bevor eine Webseite generiert wird. Somit ist eine Delegierung von Ereignissen erforderlich, d. H. Hinzufügen von Ereignissen zu dem Elternelement. Überprüfen Sie @Ameya Deshpande Antwort. –
Wird mit der Schaltfläche 'Create options' der '.addproduct'-Klickcode erneut verwendet? Wenn nicht, würde es hilfreich sein, wenn Sie es ebenso wie das zugehörige HTML gepostet haben. – Pineda