Activeadmin 停止我的 jQuery 工作
我在我的应用程序中使用 jquery 拖放功能,效果很好。
然后我添加了 activeadmin,它停止了我的 jquery 工作。
我收到此错误
$(".draggable_article_image").draggable is not a function
如果我从 active_admin.js 中删除此行,
//= require active_admin/base
它会再次开始工作。
有什么想法吗?
I'm using jquery drag and drop in my app and it works fine.
I then added activeadmin and it stops my jquery working.
I get this error
$(".draggable_article_image").draggable is not a function
If I remove this line from active_admin.js
//= require active_admin/base
it starts working again.
Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
尝试将您的 active_admin.js 文件移动到 Rails 项目的 vendor/assets/javascripts 文件夹中:应该没问题。
如果它对某人有帮助,请告诉我们!
问候
Try moving your active_admin.js file to the vendor/assets/javascripts folder of your Rails project : you should be fine.
Please let us know if it helped someone!
Regards
如果您查看 activeadmin 基本清单文件,您将查看额外的 jquery 负载在哪里被调用。基本清单中的最后一个调用是对 activeadmin 应用程序清单的调用。因此,有一种简单的方法可以绕过不需要的额外 jquery 负载。
更改应用程序的 /app/assets/javascripts/active_admin.js 中的这一行:
这样
,将加载活动管理的 javascript 代码,而无需重新加载 jquery。
在 /admin 空间中,活动管理加载 active_admin.js 而不加载 application.js,因此您也需要在那里加载 application.js。要工作,您需要让活动管理在 active_admin.js 之前加载 application.js。将其添加到 config/initializers/active_admin.rb:
但是,请注意,为了使其无缝工作,您可能需要应用程序的 application.js 清单中的所有这些声明:
此外,当 application.js 在活动管理中加载时,您需要自己管理任何命名空间冲突。
If you look at the activeadmin base manifest file you'll see where the additional jquery load is called. The last call in the base manifest is to the activeadmin application manifest. Therefore there is an easy way to bypass the unwanted additional jquery load.
Change this line in you application's /app/assets/javascripts/active_admin.js:
To
That way active admin's javascript code will be loaded without reloading jquery.
Within the /admin space, active admin loads active_admin.js without loading application.js, so you need to load application.js there too. To work, you need to make active admin load application.js before active_admin.js. Add this to config/initializers/active_admin.rb:
However, note that for this to work seamlessly, you may need all these declarations in your app's application.js manifest:
Also as application.js is being loaded within active admin, you need to manage any namespace conflicts yourself.
我上面的代码有一个错误,所以我稍微调整了一下:
active admin init:
active admin js
就是这样!
I had an error with the code above, so I tweaked mine a bit:
active admin init:
active admin js
That's it!