繁体   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