Rails 3.1 在页面加载之前加载脚本。如何将函数绑定到页面元素?

发布于 2024-12-04 06:27:14 字数 248 浏览 1 评论 0原文

将此代码放入

$('#hello').click ->
  alert 'hello'

vanilla Rails 3.1 应用程序的 posts.js.coffee 中不起作用。 javascript 在页面之前编译和加载,因此该函数不会绑定到其元素。有一些简单的解决方案,例如在页面上手动加载 js,而不是使用资产管道,或者使用 JQuery .live 函数,但似乎此代码应该开箱即用。我错过了什么吗?

Putting this code in

$('#hello').click ->
  alert 'hello'

in posts.js.coffee in vanilla Rails 3.1 app does not work. The javascript is compiled and loaded before the page so the function isn't bound to its element. There are easy solutions, like manually loading the js on the page rather than using the asset pipeline, or using JQuery .live functions, but it seems like this code should work out of the box. Am I missing something??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

绳情 2024-12-11 06:27:14

我可能会在这里指出显而易见的事情,但是你(在 jQuery 中)尝试过这个吗:

$(function(){    
    //your code
    $('#hello').click(function(){
    alert("hello");
    });
});

或者

$(document).ready(function(){ [...] });

这些(至少在正常情况下)应该阻止任何内部的 javascript 执行任何操作,直到 DOM 被加载。

希望这有帮助

I might be pointing out the obvious here, but have you (in jQuery) tried this:

$(function(){    
    //your code
    $('#hello').click(function(){
    alert("hello");
    });
});

or

$(document).ready(function(){ [...] });

These (atleast under normal circumstances) should prevent any javascript inside from doing anything until the DOM has been loaded.

Hope this helps

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文