gpt4 book ai didi

javascript - CoffeeScript - 如何在 ruby​​ on Rails 中使用 CoffeeScript?

转载 作者:行者123 更新时间:2023-11-28 14:25:32 24 4
gpt4 key购买 nike

我正在 Rails 上的 Ruby 中使用 CoffeeScript。我正在使用 http://js2.coffee/将我的 javascript 和 jquery 转换为 CoffeeScript。

我们知道,当我们创建任何 Controller 时,Ruby on Rails 默认为我们提供 .coffee 文件。

在我的 View 文件夹中,我定义了一个 test.html.erb 文件,我有一个按钮

<button id="p">try</button>

如果我在同一页面中使用 javascript 或 jquery 定义此按钮的脚本,即 test.html.erb ,它就可以工作。

我的 JavaScript 代码

document.getElementById("p").onclick = function() {myFunction()};
function myFunction() {
alert("hello");
}

和我的jquery

$(document).ready(function(){
$("#p").click(function(){
alert("hello");
});
});

现在我在 app/assets/javascripts/test.coffee 中创建了一个自定义文件

我的 jquery 代码的 CoffeeScript

$(document).ready ->
$('#p').click ->
alert 'hello'
return
return

当我在 test.coffee 中使用它时,它工作得很好。

javascript代码的coffeescript

myFunction = ->
alert 'hello'
return

document.getElementById('p').onclick = ->
myFunction()
return

当我在 test.coffee 中使用此代码时,它在我的控制台中显示错误

Uncaught TypeError: Cannot set property 'onclick' of null

我也尝试过 test.js.coffee 但仍然遇到相同的错误

那么我应该只使用jquery生成的coffeescript还是有什么方法可以使用javascript生成的coffeescript?

最佳答案

问题是在页面上找不到 element_with_id“p”,因为在页面加载之前加载了 CoffeeScript。将代码包装在 document.ready 中,一旦页面加载完成,就会调用 Coffeescript。

$(document).ready ->
myFunction = ->
alert 'hello'
return

document.getElementById('p').onclick = ->
myFunction()
return

关于javascript - CoffeeScript - 如何在 ruby​​ on Rails 中使用 CoffeeScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53552227/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com