2016-03-02 38 views
1

我有jQuery函數下一個文件:來自button_tag的alling javascript函數?

資產/ Java腳本/ poll_items.js

$(document).ready(function(){ 
    $('.up_id').on('click', function() { 
    $(this).closest('.poll_row').insertAfter($(this).closest('.poll_row').next()); 
    }); 
    $('.down_id').on('click', function() { 
    $(this).closest('.poll_row').insertBefore($(this).closest('.poll_row').prev()); 
    }); 
}); 

當我點擊'= button_tag '上升',輸入: '按鈕',值:' up',input_html:{class:'up_id'}'沒有任何反應。我如何正確調用JavaScript文件的代碼?

全碼:

民調/ new.html.haml

%h1= title "Новый опрос" 
= simple_form_for @poll do |f| 
    = f.error_messages header_message: nil 
    = f.input :question, disabled: [email protected]?(current_user), input_html: { class: 'input-block-level' } 
    = f.input :results_hidden, as: :boolean, inline_label: 'Скрыть результаты до окончания опроса', label: false 
    = f.input :from_date, as: :datetime, input_html: { class: 'poll_date' } 
    = f.input :to_date, as: :datetime, input_html: { class: 'poll_date' } 
    %h3#poll-items Варианты ответа (не больше пяти) 
    .item_index 
    = f.simple_fields_for :poll_items do |poll| 
     = render 'poll_item_fields', f: poll 
    = link_to_add_association 'Добавить еще вариант', f, :poll_items 
    .form-actions 
     = f.button :submit, 'Опубликовать опрос', class: 'btn-bg' 
     %p 
     Вернуться к посту: 
     = link_to @owner 

poll_fields.html.haml

%h3#poll-items Варианты ответа (не больше пяти) 
.item_index 
    = f.fields_for :poll_items do |poll| 
    = render "poll_item_fields", f: poll 
    .links 
    = link_to_add_association 'Добавить еще вариант', f, :poll_items, render_options: {class: 'links'} 

poll_item_fields.html.haml

.poll_row 
    .poll_item 
    = f.input :answer, input_html: { class: 'ctrlenter expanding' }, label: false, placeholder: 'Введите вариант ответа' 
    = button_tag 'up', type: 'button', class: 'up_id', value: 'up' 
    = button_tag 'down', type: 'button', class: 'down_id', value: 'down' 
    = link_to_remove_association "удалить", f, { wrapper_class: 'poll_item' } 

回答

0

SOLUTION:

我application.js.coffee #=require poll_items.js加入,一切工作

1

我懷疑該DOM越來越構建動態所以試着改變你的JS代碼如下:

$(document).ready(function(){ 
    $(document).on('click', '.up_id', function() { 
    $(this).closest('.poll_row').insertAfter($(this).closest('.poll_row').next()); 
    }); 
    $(document).on('click','.down_id', function() { 
    $(this).closest('.poll_row').insertBefore($(this).closest('.poll_row').prev()); 
    }); 
}); 

這裏我們使用事件代理技術來傳播click事件所需的DOM元素可能是存在於DOM中。

+0

添加您的版本。不起作用 –

+0

你可以在'click'處理程序中添加一個'alert(「Hello」);看看它是否被調用。 – vijayP

+0

我檢查了警報(「你好」);不起作用。 –