Ich versuche, eine Kopie eines Auswahlmenüs am Ende einer Tabelle anzuhängen, wenn im letzten Auswahlmenü in der Liste eine Auswahl getroffen wird. An dieser Stelle möchte ich das Verhalten nur auf das letzte Auswahlmenü in der Tabelle anwenden. Der folgende Code fügt die Zeile in die Tabelle ein, kann die Aktion jedoch nicht erfolgreich lösen. Daher zeigt das erste Auswahlmenü weiterhin das Verhalten an, auch wenn die Aktion nicht mehr aktiv ist.JQuery fügt Zeile zu Tabelle hinzu und bindet Ereignis nur an letzten Eintrag
Javascript:
var selectRow;
$(document).ready(function() {
selectRow = $('#selectWrapper').html();
rebindLastSelectBox();
});
function rebindLastSelectBox() {
$('#selectList:last').change(function(e) {
$(this).unbind('change');
$('table').append("<tr id='selectWrapper'>" + selectRow + "</tr>");
rebindLastSelectBox();
});
};
HTML:
<head>
<title>JS Test</title>
<script src="./js/jquery.js" type="text/javascript" charset="utf-8"></script>
<script src="./js/application.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<table>
<tr>
<td>Title</td><td><input type="text" name="some_name" value="" id="some_name"></td>
</tr>
<tr id='selectWrapper'>
<td>Items</td><td><select name="items[]" id="selectList" size="1">
<option value="1">Item 1</option>
<option value="2">Item 2</option>
</select></td>
</tr>
</table>
</body>
Alle Vorschläge dankbar empfangen!
Adam
Ich bin ehrlich gesagt nicht wirklich sicher, was mit Ihrem Code los ist. Wie kann "#selectList: last" irgendeine Bedeutung haben? Wie kannst du eine "letzte" ID haben? –
er kopiert die Zeile, so wird zwei IDs haben, die natürlich nicht gültig ist – redsquare
aktualisiert adam ... siehe meine Antwort – redsquare