为什么某些JS行为在开发中有效,但当我推送到Heroku时却不起作用

Why does some JS behavior work in development, but not when I push to Heroku?

本文关键字:Heroku 不起作用 JS 有效 开发 为什么      更新时间:2023-09-26

我正在尝试创建一个步骤表单 - 当选择其他内容时,它会触发/显示一些字段。

这是一个示例 - http://jsfiddle.net/XnPZF/- 它工作(它也在开发中工作)。

只是想不通为什么当我推到 Heroku 时这不起作用。

这是Heroku上的一个版本。

登录凭据:abc@test.com/test123

应该触发其正下方其他字段的字段是Property_Type和类别。

下面是一些代码的片段:

/views/listings/new.html.erb

<%= simple_form_for @listing, :html => { :class => 'form-horizontal' } do |f| %>
<%= f.error_notification %>
      <fieldset>
            <%= f.association :property_type %>
    <div style="display: none;" data-show-for-prop-type="Multi Family">
      <h4>Multi-Family</h4>
      <%= f.input :taxes %>
      <%= f.input :house_families %>
      <%= f.input :house_extensions %>
      <%= f.input :house_stories %>
      <%= f.input :house_units %>
    </div>
    <div style="display: none;" data-show-for-prop-type="Condo">
      <h4>Condo</h4>
      <%= f.input :taxes %>
      <%= f.input :common_charges %>
    </div>

listings.js文件:

$('#listing_property_type_id').on('change', function(){
    var option = $(this).find(':selected');
    $('[data-show-for-prop-type]').hide(); //And maybe reset?
    $('[data-show-for-prop-type='+ option.text() +']').show();
}); 

在 realty-cloud.herokuapp.com/listings/new 上看到几个 JS 错误..."未捕获的类型错误:无法读取未定义的属性'oApi'"。几乎肯定这可能是问题所在。

Dev 没有问题的原因是因为在 dev 中,它是单独的资产,因此错误仅限于具有该错误的那个 js 文件。但是,由于资产管道编译为一个,因此错误会停止其其余的执行。

最好的办法是修复所有控制台错误,或添加"未定义"检查以防止这些"Uncaugh TypeError"错误。