$(".app-launch").on("click", function () {
var appId = this.id;
// Check if Function is running.
if (typeof eval('$' + appId).start == 'undefined') {
eval('$' + appId).start();
}
}
eval只是让它回来并说$ XXXXXX没有定义并杀死java脚本执行。反正有没有阻止它杀死执行并继续?这个函数要么启动应用程序,要么首先加载javascript然后启动应用程序,所以这个检查是为了确定是否已经加载了javascript。
答案 0 :(得分:1)
首先,停止使用eval
。如果您想要动态可变的变量,请使用对象。
然后,您可以在尝试访问其start
属性之前测试对象的类型。
var objects = {};
var appId = "thing";
objects[appId] = { start: foo; }
if (
typeof objects[appId] !== 'undefined' &&
typeof objects[appId].start === 'function'
) {
objects[appId]();
}
答案 1 :(得分:1)
试试这个
eval('$("' + appId + '"')
答案 2 :(得分:0)