Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.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
Javascript 浏览器未执行Rails、jQuery、.js.erb文件、js_Javascript_Jquery_Ruby On Rails_Ruby_Erb - Fatal编程技术网

Javascript 浏览器未执行Rails、jQuery、.js.erb文件、js

Javascript 浏览器未执行Rails、jQuery、.js.erb文件、js,javascript,jquery,ruby-on-rails,ruby,erb,Javascript,Jquery,Ruby On Rails,Ruby,Erb,我正在尝试使用jQuery,并且一切都很好,直到现在,当我尝试渲染分部并将其附加到div时。下面是我如何设置它的: 我有一个响应js的动作: def index @objects = Object.find(:all) respond_to do |format| format.js end end 还有一个名为index.js.erb的模板,其中包含一些javascript: alert("hello world"); Firebug返回一个“文本/javascrip

我正在尝试使用jQuery,并且一切都很好,直到现在,当我尝试渲染分部并将其附加到div时。下面是我如何设置它的:

我有一个响应js的动作:

def index
  @objects = Object.find(:all)

  respond_to do |format|
    format.js
  end
end
还有一个名为index.js.erb的模板,其中包含一些javascript:

alert("hello world");
Firebug返回一个“文本/javascript”响应,其中包含:

alert("hello world");
但是警报窗口不会出现,其他JavaScript也不会工作。我退房了 我差不多也跟着。我尝试了其他一些方法,比如使用.rjs而不是.erb,并将其放入我的模板中:

page.alert("hello world"); 
但是我得到了同样的结果,浏览器从不执行JS

有人知道为什么JavaScript没有被执行吗


我正在运行Rails 2.3.4。

您必须从视图中调用它,否则它将永远无法执行

控制器示例:

def index
  @objects = Object.find(:all)

  respond_to do |format|
    format.js{
      render :text => "alert('hello')"
    }
  end
end
以及一个index.html.erb,其中包含:

<script type="text/javascript">
  $(function(){
    $.ajax({ url: '/controller', type: 'get', dataType:'script' });
  });
</script>
或:


page您似乎没有使用任何特定于jQuery的东西,但请注意,Rails附带的是原型,而不是jQuery。如果您想切换,请查看jRails。我的情况是,我没有这个操作的html版本,它严格用于通过ajax(无休止的分页)加载页面。出于某种原因,即使在我的respond_to block中调用render:text=>“alert('hello');”时,我仍然没有收到警报,但firebug说我收到了一个包含正确内容的text/javascript响应。事实证明,我忘记了ajax调用中的数据类型:“script”。谢谢你的帮助,我自己不会抓到的。数据类型:“script”在使用jQuery表单插件时也救了我。一旦正确设置了js.erb,如果没有它,它仍然无法作为JavaScript运行。谢谢
page.alert("hello world")
page << "hello world"