我想將一個函數傳遞給我簡單的教程代碼,這樣我就可以在頁面上觸發事件。爲什麼從閉包中調用外部函數時窗口不工作?
我有兩個JavaScript文件:map.js和tutorial.js。根和tutorial.js中的Map.js位於關閉中,因爲我希望能夠重複使用而不會出現任何問題。
在map.js
function foo(bar){
// do something
}
在tutorial.js的閉合功能。我只是包含了我的callFunc方法,但是我從頁面上具有數據屬性的元素獲取$ step。
<li data-func="foo" data-param="bar">...</li>
我不能讓這個函數實際調用。正如你可以看到我試過窗口和根。
(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)。我想從我的封閉中調用這個教程。
爲什麼這個問題越來越downvotes?我以爲我提供了充足的信息? – dawoodman71