1
在CoffeeScript的功能我在CoffeeScript的文件中定義的函數:調用從嵌入式腳本
showAlert =() ->
alert("asdfsd")
並從該視圖我調用這個函數爲:
:javascript
jQuery(function(){
showAlert();
});
但功能不觸發。這裏有什麼問題?
在CoffeeScript的功能我在CoffeeScript的文件中定義的函數:調用從嵌入式腳本
showAlert =() ->
alert("asdfsd")
並從該視圖我調用這個函數爲:
:javascript
jQuery(function(){
showAlert();
});
但功能不觸發。這裏有什麼問題?
這是因爲自動的CoffeeScript包裝在一個Immediately-Invoked Function Expression(IIFE)其transpiled的Javascript輸出,這意味着你聲明的CoffeeScript塊內的任何功能都在全球範圍內不。因此,您的jQuery塊無法找到showAlert
函數,因爲它不存在於您的jQuery塊可以訪問的作用域/閉包中。
你能做什麼(雖然我不知道這是一個好主意)是宣佈你的「全球性」功能的window
命名空間:
window.showAlert = -> alert('asdfasdf')
從你的jQuery塊調用它:
javascript:
jQuery(function($){
window.showAlert();
});
這將起作用,因爲window
名稱空間在所有(瀏覽器)作用域中都可用。
簡單'showAlert()'工作嗎? – alex
@alex是的!當我刪除函數並將代碼放入jQuery函數中時。 –