我有以下代码:

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();
}

10-05 20:31