2016-02-14 3 views
2

Я знаю, что этот вопрос избит до смерти, но я пробовал все возможные подходы, но ничего не работает для меня. Я пытаюсь добавить простое предупреждение при нажатии ссылки. Оцените свои данные.Rails 4 coffeescript не работает

Все это делает

Просмотр парциальное: (Я хочу, чтобы огонь некоторые CoffeeScript по нажатию ссылки Отмена с идентификатором: "отменить-комментарий)

<%= simple_form_for [@parent,@comment] do |f| %> 
    <%= f.error_notification %> 

    <div class="form-inputs"> 
    <%= f.hidden_field :group_id, :value => @group_id %> 
    <%= f.input :body, placeholder: 'Reply', label: false %> 
    </div> 

    <div class="form-actions"> 
    <%= f.button :submit, 'Post Reply'%> 
    </div> 
    <%= link_to "Cancel", "#",id: "cancel-comment" %> 

<% end %> 

CoffeeScript: активы/comments.coffee :

$(document).on "page:change" , -> 
    $('#cancel-comment').click -> 
    alert "page has loaded!" 
    return false 

Я также попытался это:

$(document).on "page:change", -> 
    $('#cancel-comment').click(e) -> 
    e.preventDefault() 
    alert "page has loaded!" 

Я также попытался заменить CoffeeScript с JavaScript, как показано ниже, но это не похоже, чтобы помочь тоже:

$(document).on("page:change", function() { 
    $('#cancel-comment').click(function(event) { 
     event.preventDefault(); 
     alert("page has loaded!"); 
    }); 
    }); 

Gemfile:

gem 'jquery-turbolinks' 

активы/application.js

//= require jquery 
//= require jquery_ujs 
//= require jquery.turbolinks 
//= require twitter/bootstrap 
//= require turbolinks 
//= require_tree . 
+0

Есть ли конкретная причина, почему вы используете '«страницу: изменение»'? Я бы просто изменил всю первую строку (вашего файла CoffeeScript) на 'jQuery ->'. Это всегда работает для меня. –

+0

@mike Try 'страница: load'. –

ответ

3
$(document).on "click", "a#cancel-comment", (e)-> 
    e.preventDefault() 
    alert "page has loaded!" 

Всякий раз, когда мы связываем события с элементами с Turbolinks, мы делегат от document и привязать его непосредственно к элементу.

-

Если вы используете Rails 5, вы увидите, что Turbolinks изменил свой event hooks

Смежные вопросы