2016-02-26 176 views
0

我有一個link_to '#'div應該觸發淡入淡出的表單,點擊。點擊不會觸發jquery功能

<div id="atendees-wrap"> 

    <%= f.simple_fields_for :atendees do |a| %> 

    <div class="expandable-members"> 
     <%= link_to 'Membrul', '#', class: 'trigger' %> 
    </div> 

    <div id="primary-info"></div> 
    <div id="secondary-info"></div> 

    <% end %> 
</div> 

問題是,它不會事件進入函數。 這裏的js代碼:

//= require jquery 
//= require jquery_ujs 

$(document).ready(function(){ 

    $('#atendees-wrap').find('.expandable-members').click(function() { 
    debugger 
    $('#primary-info, #secondary-info').fadeIn("slow"); 
    }); 

}) 

也是一樣的:

$('input[name*="agree"]').click(function() { 
    if ($(this).is(':checked')) { 
    console.log("clicked"); 
    $('input[type="submit"]').removeAttr('disabled'); 
    } else { 
    $('input[type="submit"]').attr('disabled', 'disabled'); 
    } 
}); 

我試着用mouseupon("click", function(){}),但同樣的結果。

那麼我在這裏做錯了什麼?

+0

你包含jquery.js嗎?檢查控制檯是否有任何錯誤? –

+0

@RoryMcCrossan是的,沒有錯誤和jQuery包括在內。我有兩個其他功能,工作得很好。 –

+0

你檢查了$('#atendees-wrap')的長度嗎?find('。expandable-members'),它發現了什麼嗎? –

回答

1

請嘗試以下代碼。 href使用'javascript:;'而不是'#'。

<div id="atendees-wrap"> 

    <%= f.simple_fields_for :atendees do |a| %> 

    <div class="expandable-members"> 
     <%= link_to 'Membrul', 'javascript:;', class: 'trigger' %> 
    </div> 

    <div id="primary-info"></div> 
    <div id="secondary-info"></div> 

    <% end %> 
</div> 

而且

//= require jquery 
//= require jquery_ujs 

$(document).ready(function(){ 

    $('#atendees-wrap .expandable-members').click(function() { 
    $('#primary-info, #secondary-info').fadeIn("slow"); 
    }); 

}) 

而且我無法找到輸入標籤在可以通過切換到發佈

0

我固定它的代碼此選擇$('input[name*="agree"]')這個選擇匹配:

$(document).on('click', '#atendees-wrap .expandable-members', function (e) { 
    e.preventDefault() 
    $('#primary-info, #secondary-info').slideToggle("slow"); 
});