我正在将资产管道安装到旧的rails应用程序中。我收到了一些非常奇怪的结果。我可以看到该页面正在呈现app/assets
目录中的所有css和jquery,但它很难与html交互。
例如,如果我检查页面并在控制台中调用$("html").html();
尝试抓取所有html,它会在尝试抓取正在呈现的任何元素时返回TypeError: Cannot call method 'html' of null
吗?但页面就在那里。如果我打电话给jQuery
它会恢复正常。所以它不像jQuery不存在。
答案 0 :(得分:1)
$
只是写jQuery
的简写方式。如果后者有效,但前者没有,那么你的管道中的另一个脚本可能与jQuery冲突,并尝试将$
符号用于其他内容。
您是否正在使用可能尝试使用$
的任何其他插件或库?或者你在任何地方写$ = (something)
而不小心自己覆盖了它?没有更多信息,很难知道问题的确切位置。
如果所有其他方法都失败了,您可以坚持使用jQuery()
进行所有通话。在外部脚本文件中,您还可以通过将jQuery对象传递给包装函数来避免这种情况,例如:
(function ($) {
$('div').append('You can use $ here without having to worry about conflict.');
}(jQuery))