Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Coffeescript/Rails中的范围_Ruby On Rails_Coffeescript - Fatal编程技术网

Ruby on rails Coffeescript/Rails中的范围

Ruby on rails Coffeescript/Rails中的范围,ruby-on-rails,coffeescript,Ruby On Rails,Coffeescript,当我做这样简单的事情时: $ -> $('#target').html('blabla') $ -> $('#target').html('blabla').myFunction() myFunction = -> alert("OK") 它起作用了 当我尝试时: $ -> $('#target').html('blabla').myFunction() myFunction = -> // a certain actio

当我做这样简单的事情时:

$ ->
  $('#target').html('blabla')
$ ->
  $('#target').html('blabla').myFunction()

  myFunction = ->
    alert("OK")
它起作用了

当我尝试时:

$ ->
  $('#target').html('blabla').myFunction()

  myFunction = ->
    // a certain action
我总是收到一个错误:
TypeError:$(…).html(…).myFunction不是一个函数

为什么呢


正如你可能猜到的,我远非职业选手

如果您这样做:

$ ->
  $('#target').html('blabla')
$ ->
  $('#target').html('blabla').myFunction()

  myFunction = ->
    alert("OK")
转变为:

$(function() {
  var myFunction;
  $('#target').html('blabla').myFunction();
  return myFunction = function() {
    return alert("OK");
  };
});
正如您所看到的,myFunction是一个包含某些结构的变量,但是在执行$(“#target”#)html('blablabla')时返回的对象没有名为myFunction的方法,这就是您出现该错误的原因

我不知道你想做什么,但你可以做类似的事情

$ ->
  myFunction = (data) ->
    alert(data)

  myFunction $('#target').html('blablabla')
转化为:

$(function() {
  var myFunction;
  myFunction = function(data) {
    return alert(data);
  };
  return myFunction($('#target').html('blablabla'));
});

如果你正在学习coffeescript,那么一个好的网站在转型时需要考虑的是它不是coffeescript的问题。您没有定义一个可以在jQuery对象上调用的jQuery插件,而只是一个常规函数。请看这里:

谢谢你这么长的回答!