我无法调用javascript函数进行delete()。 因为我的按钮附加在html中。我的onclick无法正常工作
var query = firebase.database().ref("Feedback").orderByKey();
query.once("value")
.then(function(snapshot) {
snapshot.forEach(function(feedbackSnapshot) {
var uid = feedbackSnapshot.key;
feedbackSnapshot.forEach(function(childSnapshot) {
var key = childSnapshot.key;
var TicketNo = childSnapshot.child("feedID").val();
var Subject = childSnapshot.child("feedSubject").val();
var Message = childSnapshot.child("feedMessage").val();
var deleteRef = "Delete(key,uid)";
$("#feedback_table").append(
"<tr><td>"+Message+"</td><td>"+Subject+"</td><td>"+TicketNo
+"</td><td><button onclick="+deleteRef+">Remove</button></td><td style='display:none;'>"+uid
+"</td><td style='display:none;'>"+key+"</td></tr>");
});
});
});
这是我的删除功能:
function Delete(key,uid){
var feedRef = firebase.database.ref("Feedback").child(uid).child(key);
feedRef.remove()
.then(function(){
console.log("Remove succeeded.")
})
.catch(function(error){
console.log("Remove Failed!"+error.message)
});
}
答案 0 :(得分:0)
问题在此行上:
var deleteRef = "Delete(key,uid)";
因此,请不要将其替换为:
var deleteRef =“ Delete(” + key +“,” + uid +“)”;
它肯定会起作用,因为现在我们实际上是在为其提供值的同时提供对deleteRef变量的引用。
答案 1 :(得分:0)
在附加HTML而不是引号并引用此类函数时,可以使用ES6模板文字。
顺便说一句,以大写字母开头的函数通常表示该函数为一类。您应该以小写形式命名函数(函数Delete(key,uid)应该是函数delete(key,uid))
$("#feedback_table").append(
`<tr><td>${Message}</td><td>${Subject}</td><td>${TicketNo}
</td><td><button onclick="delete(${key}, ${uid} );">Remove</button></td>
<td style='display:none;'> uid </td><td style='display:none;'>${i}</td></tr>`);