新手问题 求大神指教 erb 文件中 javascript_include_tag 引入文件对 js 文件中代码部分的影响

lionzixuanyuan · 2012年11月14日 · 最后由 lionzixuanyuan 回复于 2012年11月14日 · 4929 次阅读

erb 文件中引入了多项 jquery,如下:

<%content_for :page_script do %>
    <%= javascript_include_tag "jquery/jquery-1.4.2.min"%>
    <%= javascript_include_tag "jquery/calendar/jquery-calendar"%>
    <%= javascript_include_tag "jquery/fancybox/jquery.fancybox-1.3.4.pack"%>
    <%= javascript_include_tag "jquery/bgiframe/jquery.bgiframe.min"%>
    <%= javascript_include_tag "jquery/dataTables/jquery.dataTables"%>
    <%= javascript_include_tag "jquery/dataTables/dataTables.fnDisplayStart"%>
    <%= javascript_include_tag "reproduct_datas/index"%>
<%end%>

当引入这些文件后,在 reproduct_datas 文件夹下的 index.js 文件中的部分代码报错了,原因似乎是因为进入了错误的引用文件中 求大神指导如何解决,描述可能不够详尽,不知道能不能让大家理解。先谢过!

问题已解决: 系统中存在_global_javascript,其中引入的/jquery-1.4.3.min 文件在实现一些功能时支持不到位,遂在页面中再次引入了/jquery-1.4.2.min 版本,然后错上加错又重复引用了 fancybox。将 erb 文件中重复引用的删除后,将_global_javascript 中引用的版本换成/jquery-1.4.2.min 后解决问题。 现在在和前台开发人员沟通,看看两个版本之间差异,不知道是否会影响全局。 多谢@chenge@luikore 的热心帮助。

要把错误贴出来。

#1 楼 @chenge 内外网隔离,我苦逼啊~~ Chrome 中报错显示为 Cannot call method 'hide' of undefined jquery.fancybox-1.3.4.pack.js:18 我觉得这个贴出来也没有用啊

没有服务器端的错误么?你尝试把这个 fancy 去掉看看。

#3 楼 @chenge 服务器端没有问题,fancybox 去掉后会影响其他功能。。。。

你得想办法给出信息。没有人是神仙。

我给你猜猜看:

  • jquery 没载入?(看看 $ 在否?)
  • 页面上没有 fancybox 的对应的元素?
  • fancybox 载入了两次?

都不是的话建议看看生成的页面里是否全部引入的文件都有了,换用非压缩的 js 找到准确的出错位置的代码...

混这么久我发现:如果一个人能准确的描述出他的问题,他已经解决问题了...

#5 楼 @chenge 我这内外网隔离,没办法截图给你看,然后我现在又是菜鸟级别,不知道怎么给你描述才到位

#6 楼 @luikore 正在调试,谢谢你给的意见

#6 楼 @luikore 确实是重复引用了,系统有一个_global_javascript,多谢指教

需要 登录 后方可回复, 如果你还没有账号请 注册新账号