gpt4 book ai didi

jquery - "Ajax is not found"异常 - Rails 是否错误地默认为 Prototype?

转载 作者:行者123 更新时间:2023-12-01 04:27:10 24 4
gpt4 key购买 nike

我正在尝试创建一个显示任务列表的页面,并允许用户通过选中复选框来更新任务状态。

当我在浏览器上运行页面并单击复选框时,出现 Javascript 异常“

Uncaught ReferenceError: Ajax is not defined (anonymous function)2:96 onclick

这是我的 _task.html.erb 文件中的代码:

<%= check_box_tag "id", "id", task.done, 
:onclick => remote_function(
:update => "task",
:url => { :action => :update },
:with => "'done=true'",
:complete => "alert('hi')" ) %>

为什么我会收到此Ajax未定义异常?

我重新安装了rails jquery,确保javascripts文件夹中有rails.js和jquery.js,并确认它们正在加载到HTML上,如下所示:

<script src="/javascripts/jquery.js?1303396383" type="text/javascript"></script> 
<script src="/javascripts/rails.js?1303562965" type="text/javascript"></script>
<script src="/javascripts/application.js?1301606933" type="text/javascript"></script>
<script src="/javascripts/jquery.purr.js?1302145859" type="text/javascript"></script>
<script src="/javascripts/best_in_place.js?1302150372" type="text/javascript"></script>

有人发表评论说,大写A的“Ajax”是原型(prototype)函数而不是rails函数。我的应用程序是否以某种方式配置为尝试使用 Prototype 而不是 Rails?我需要更改文件来解决此问题吗?

我刚刚尝试更改 config/application.rb 并取消注释此行:

config.action_view.javascript_expansions[:defaults] = %w(jquery rails)

似乎也不起作用。有什么想法吗?

非常感谢您的帮助。

最佳答案

remote_function,像大多数 RJS 一样,uses Prototype directly并且不属于 UJS 概念的一部分。 Prototype 帮助程序始终在 Rails 应用程序中可用(直到 Rails 3.1),但它们生成的 JavaScript 仅限于 Prototype,除非您还使用 Prototype JavaScript 库,否则它们将无法工作。

在您的示例中,您使用的是 jQuery 而不是 Prototype。如果您想使用 jQuery,您应该写出预期的 JavaScript 或编写您自己的 remote_function 帮助程序。

关于jquery - "Ajax is not found"异常 - Rails 是否错误地默认为 Prototype?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5739431/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com