Так что у меня есть следующий код, однако, когда нажата кнопка удаления, дочерний элемент не удаляется. Кажется, что функция click никогда не запускается, потому что я попытался добавить оператор предупреждения, и он не работает.Удалить дочерний элемент с помощью связанного с ним ключа
<table id="removeTable" class="mdl-data-table mdl-js-data-table mdl-shadow--2dp">
<thead>
<tr>
<th>Employee ID</th>
<th>Name</th>
<th>Email</th>
<th>Remove</th>
</tr>
</thead>
<tbody id="table_body"></tbody>
</table>
var rootRef = firebase.database().ref().child("Employees");
rootRef.on('child_added', snap => {
var id = snap.child("ID").val();
var key = snap.key;
var name = snap.child("Name").val();
var email = snap.child("Email").val();
var btn = "<button key='"+ key +"' class='removeEmployee mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--accent'>Remove</button>";
$("#table_body").append("<tr id='"+key+"'><td>" + id + "</td><td>" + name + "</td> <td>" + email +
"</td><td><button>" + btn +"</button></td></tr>");
});
$("#removeEmployee").click(
function(){
alert();
}
);
// now this click handler can be (should be) moved outside 'child_added' callback
$(".removeEmployee").click(function(){ // note: using 'removeElement' as class, not as id
alert("clicked!");
var key = $(this).attr('key');
var itemToRemove = rootRef.child(key);
itemToRemove.remove()
.then(function() { // removed from Firebase DB
console.log("Remove succeeded.")
})
.catch(function(error) {
console.log("Remove failed: " + error.message)
});
});
// keeping this separate so that even if the item is removed by any other means (e.g.- directly from server console) this UI will remain in sync
rootRef.on('child_removed', function(snap) {
var key = snap.key;
$('#'+key).remove();
});
Ваша проблема не имеет ничего общего с firebase. StackOverflow не является форумом, где люди помогут вам в решении больших проблем. Разделите проблему на несколько вопросов и спросите их отдельно. – Soviut