我有以下代码:
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”设置为所需的值(不为空!)。 然而,我的函数removeProfile收到“null”(event.data是{profile:null})或者profileToRemove的初始值是什么。
那么如何将removeProfile的当前值传递给我的处理程序呢?
谢谢!
答案 0 :(得分:1)
on()
中的数据参数接受一个对象,该对象的值在绑定时被锁定,以后更改profileToRemove
变量不会以任何方式更新{{1} (你输错了)。
由于您已经在更高的范围内拥有变量,因此直接使用它似乎更容易
event.data.profile
答案 1 :(得分:0)
更改您的设计,以便数据包含一个返回您想要的函数:
$("#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();
}