Calling functions defined with coffee script?
coffeescript, html, javascript
Solution
Your problem is that the generated javascript code is in another scope. You have to solve this by either adding the `-b` parameter to the coffeescript compiler or export your function explicitly via
root = exports ? this
root.show_alert = () -> alert("Hello! I am an alert box!")
For more information about the exporting and scope issue have a look at https://stackoverflow.com/a/4215132/832273
I created a working jsfiddle with the above coffeescript code
Problem
I have the following coffeescript code to generate and alert box: ``` show_alert = () -> alert("Hello! I am an alert box!") ``` which compiles to: ``` (function() { var show_alert; show_alert = function() { return alert("Hello! I am an alert box!"); }; }).call(this); ``` in my html I have the following ``` <input onclick='show_alert()' type='button' value='Show alert box' /> ``` However, no alert box shows? The following is the html copied from the browser: ``` <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title>Test Rails Application</title> <style type='text/css'>.application h1 { color: lime; } </style> <script type='text/javascript'>(function() { var show_alert; show_alert = function() { return alert("Hello! I am an alert box!"); }; }).call(this); </script> </head> <body> <h1>Hello from applicaiton.html.haml</h1> <div class='application'><h1>Hello World</h1> <input onclick='show_alert()' type='button' value='Show alert box' /> </div> </body> </html> ``` Why am I not able to get an alert box to show up?