簡體   English   中英

從內聯腳本調用coffeescript中的函數

[英]Calling a function in coffeescript from inline script

我在coffeescript文件中定義了一個函數為:

showAlert = () ->
  alert("asdfsd")

從視圖的角度來看,我將此函數稱為:

:javascript
  jQuery(function(){
   showAlert();
  });

但是該功能未觸發。 怎么了

這是因為Coffeescript自動將其轉譯的Javascript輸出包裝在立即調用的函數表達式 (IIFE)中,這意味着您在Coffeescript塊中聲明的任何函數都不在全局范圍內。 因此,您的jQuery塊找不到showAlert函數,因為它不在您的jQuery塊可以訪問的作用域/閉包中。

您可以做的(盡管我不確定這是個好主意)是在window名稱空間上聲明您的“全局”函數:

window.showAlert = -> alert('asdfasdf')

並從您的jQuery塊中調用它:

javascript:
  jQuery(function($){
    window.showAlert();
  });

這將起作用,因為window名稱空間在所有(瀏覽器)范圍中都可用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM