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插件,而只是一个常规函数。请看这里:谢谢你这么长的回答!