Rails 关于 coffescript 的诡异问题。

bony · July 14, 2012 · Last by bony replied at July 15, 2012 · 3521 hits

我一直都直接用 js,最近想尝试一下在新项目里有 coffee。就遇到一个诡异的问题。
我给 button 添加了一个 click 方法

$("#btn_test").click () ->
  alert("Hello")
  return false

然后用浏览器能看到 resources 里已经载入了这个 js

(function() {

  $("#btn_test").click(function() {
    alert("Hello");
    return false;
  });

}).call(this);

看上去一切良好,没问题,然后我点击的了 button。什么事就没有发生。诡异诡异。
如果我把这段生成的 js 在浏览器的 console 里执行一下,然后再点按钮就没问题。
这个到底是为什么呢? 我 js 很水。所以有点手足无措,不知道发生了什么,前来求助。

把生成的 js 代码替换掉 coffee 的,然后看一下是否正常。 如果不正常的话应该是 js 执行的时机不对吧。

document 没 ready

#2 楼 @fredwu 我为我的 js 知识之匮乏感到羞愧!!thx.

Unknow user #4 July 15, 2012

试试这样:

$ ->
  $('#btn_test').click ->
    alert 'Hello'
    return false

首先当然是 document 没有 ready. 其次我觉得 click 后面不应该有小括号。 我是 coffeescript 的新手,没经过验证。

另外就是,jQuery 里很少用 return false。一般都是传递 event 参数后用 event.preventDefault()

You need to Sign in before reply, if you don't have an account, please Sign up first.