我有以下代码:
var profileToRemove = null;
//...
$("#buttonRemoveProfile").on("tap", {profile : profileToRemove}, removeProfile);
//...
function removeProfile(event){
console.log(event.data);
var profile = event.data.profil;
if(profile==null || profile.name==null) {
alert("Erreur lors de la suppression du profil");
}
else { /*remove profile*/ }
}
在单击“ #buttonRemoveProfile”之前,将“ profileToRemove”设置为所需值(不为null!)。
但是,我的函数removeProfile接收到“ null”(event.data为{profile:null})或profileToRemove的初始值是什么。
那么如何将removeProfile的当前值传递给我的处理程序?
谢谢 !
最佳答案
更改设计,使数据包含返回所需内容的函数:
$("#buttonRemoveProfile").on("tap", {profile : function() {
return profileToRemove;
}
}, removeProfile);
function removeProfile(event){
console.log(event.data);
var profile = event.data.profile(); // Call the profile function
if(profile==null || profile.name==null) {
alert("Erreur lors de la suppression du profil");
}
else { /*remove profile*/ }
}
如果想花哨的话,可以允许配置文件是函数或数据,并使用:
var profile = event.data.profile;
if (typeof profile == "function") {
profile = profile();
}