为什么jQuery触发器在控制台中工作但不在此代码中?

时间:2014-11-20 19:35:38

标签: javascript jquery ruby-on-rails coffeescript

所以我有一个带有cocoon gem的Rails 4应用程序,带有2个单选按钮。如果用户选择是单选按钮,则显示div#kites部分并且"添加风筝"应该点击。我知道代码进入if语句,因为当我选择Yes单选按钮时," hello kite"显示在控制台中,显示div#kites部分。但是,没有点击链接。我可以在控制台中输入 $(" #kites> div.links> a")。触发器("点击")并触发适当的行为。关于为什么它可以在控制台中工作而在代码中没有的任何想法?

Coffeescript代码:

$("input[name=led_to_kite]").change ->
  if($("#led_to_kite_Yes").is(":checked"))
    $("#kites").show()
    $("#kites > div.links > a").trigger("click")
    console.log "hello kite"

HTML标记

<ul id='led_to_kite'>
  <li>kites</li>
  <li><input checked="checked" id="led_to_kite_Yes" name="led_to_kite" type="radio" value="Yes" /> Yes</li>
  <li><input id="led_to_kite_No" name="led_to_kite" type="radio" value="No" /> No</li>
</ul>
<div id='kites'>
  <table>
    <thead>
      <tr>
        <th>Description of kite</th>
        <th>Description of setting in which kite was implemented</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>test kites</td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <div class='nested-fields'>
    <div class='outcome add-outcome-form'>
    </div>
  </div>
  <input id="person_kites_attributes_0_id" name="person[kites_attributes][0][id]" type="hidden" value="10" />  
  <div class='links'>
    <a class="add_fields" data-association-insertion-template="&lt;div class=&#39;nested-fields&#39;&gt;
      &lt;div class=&#39;outcome add-outcome-form&#39;&gt;
        &lt;fieldset class=&quot;inputs&quot;&gt;&lt;ol&gt;&lt;li class=&quot;string input optional stringish&quot; id=&quot;person_kites_attributes_new_kites_brief_description_input&quot;&gt;&lt;label class=&quot;label&quot; for=&quot;person_kites_attributes_new_kites_brief_description&quot;&gt;Description of kite&lt;/label&gt;&lt;input id=&quot;person_kites_attributes_new_kites_brief_description&quot; name=&quot;person[kites_attributes][new_kites][brief_description]&quot; type=&quot;text&quot; /&gt;

        &lt;/li&gt;
        &lt;li class=&quot;string input optional stringish&quot; id=&quot;person_kites_attributes_new_kites_setting_description_input&quot;&gt;&lt;label class=&quot;label&quot; for=&quot;person_kites_attributes_new_kites_setting_description&quot;&gt;Description of setting in which kite was implemented&lt;/label&gt;&lt;input id=&quot;person_kites_attributes_new_kites_setting_description&quot; name=&quot;person[kites_attributes][new_kites][setting_description]&quot; type=&quot;text&quot; /&gt;

        &lt;/li&gt;

        &lt;/ol&gt;&lt;/fieldset&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    " data-association="kite" data-associations="kites" href="#">Add kite</a>
  </div>
</div>

资产目录中的application.js

// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// compiled file.
//
// Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
// about supported directives.
//
//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require cocoon
//= require jquery.iframe-transport
//= require jquery.fileupload
//= require jquery.fileupload-process
//= require jquery.fileupload-image
//= require jquery.fileupload-validate
//= require jquery.are-you-sure
//= require ays-beforeunload-shim
//= require communication_dropdown
//= require file_uploader
//= require radio_button_logic
//= require show_pilot_fund_buttons
//= require formtastic_datepicker
//= require jquery.stepy
//= require wizard_stepy
//= require progress_bar
//= require jquery.icheck
//= require icheck
//= require investigator_dropdown
//= require check_form
//= require chosen-jquery

Rails应用程序中的当前Gemfile:

source 'https://rubygems.org'
ruby "2.1.2"

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~>4.1.6'
# Use sqlite3 as the database for Active Record
# gem 'sqlite3'
gem 'pg', '~> 0.17.1'

# Use SCSS for stylesheets
gem 'sass-rails', '~> 4.0.4'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-rails', '~> 4.0.0'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer',  platforms: :ruby

# Use jquery as the JavaScript library
gem 'jquery-rails'

gem 'jquery-ui-rails'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
# gem 'turbolinks'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
# gem 'jbuilder', '~> 2.0'
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', '~> 0.4.0',          group: :doc

# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
# gem 'spring',        group: :development

gem 'annotate', '~> 2.6.5'
gem 'figaro'
  #ref: "9bbc7343f3916e73c185d071608e5ef24e9638d0"
gem 'dropbox-sdk', '~> 1.6.4'
gem 'bootstrap-sass', '~> 3.2.0.2'
gem "haml-rails"
gem 'devise'
gem 'formtastic', '~>3.0.0rc'
gem 'autoprefixer-rails'
gem "cocoon"
gem "mandrill-api"
gem 'resque', '~> 1.25.2'
gem 'tzinfo-data'
gem 'pundit'
gem 'ruby-progressbar'
gem 'jquery-ui-themes'
gem 'smarter_csv'
gem 'foreman'
gem 'unicorn', '~> 4.8.3'
gem 'aws-sdk'
gem 'paperclip'
gem 'obfuscate_id', :git => 'https://github.com/namick/obfuscate_id.git'
gem 'chosen-rails'

group :development do
  gem 'sextant'
end

group :development, :test do
  gem 'spring-commands-rspec'
  gem 'rspec-rails'
  gem 'guard-rspec'
  gem 'pry'
end

group :test do
  gem "factory_girl_rails"
  gem "capybara"
  gem "database_cleaner"
  gem "launchy"
  gem "poltergeist", "~> 1.5.0"
  gem "codeclimate-test-reporter", require: nil
  gem 'shoulda-matchers', require: false
  gem 'vcr', '~> 2.9.2'
  gem 'webmock', '~> 1.18.0'
end

group :staging, :production do
  gem 'rails_12factor'
end

0 个答案:

没有答案