我正在尝试将函数传递给我的简单教程代码,以便我可以在页面上触发事件。
我有两个javascript文件:map.js和tutorial.js。 root.ands中的Map.js在一个闭包中,因为我希望能够重复使用它而没有任何问题。
map.js中的函数
function foo(bar){
// do something
}
tutorial.js中的闭包。我只是包含我的callFunc方法,但我从页面上具有数据属性的元素获取$ step。
<li data-func="foo" data-param="bar">...</li>
我无法让这个功能实际调用。正如你所看到的,我已经尝试过窗口和root。
(function ($, root, window) {
// Use strict mode to reduce development errors.
// @link http://www.nczonline.net/blog/2012/03/13/its-time-to-start-using-javascript-strict-mode/
"use strict";
/**
* Calls function from step and passes params.
*/
function callFunc($step) {
var func = $step.attr("data-func");
var param = $step.attr("data-param");
if (func !== undefined) {
console.log(root.func);
if (param !== undefined) {
window.func(param);
} else {
window.func();
}
}
}
})(jQuery, this, window);
map.js文件有一个函数foo(bar)。我想从我的闭包中调用它来进行教程。
答案 0 :(得分:1)
而不是
window.func(param);
window.func();
尝试
window[func](param);
window[func]();