简单的Jquery切换不起作用

时间:2017-10-14 07:39:00

标签: javascript jquery ruby-on-rails

我有一个非常简单的Jquery函数,可以模仿许多在线教程中的代码,我已经看了几个类似的stackoverflow问题,但我不明白为什么当我点击链接显示时没有任何反应隐藏名为' advanced-search'的div。 (我也删除了turbolinks,但也没有任何反应。我在整个应用程序中都有其他Jquery代码,并且一切正常。)

物品/ index.html.erb

$(document).ready(function(){
  $('.show-advanced-search').click(function(){
    $('.advanced-search').toggle();  
  });
});

articles.js

'a.show-advanced-search'

将选择器缩小到jQuery(document).on 'change', 'select.sortBy', () -> $.ajax( url: $(this).data('url') + '?type=' + this.value type: 'GET' contentType: 'script' processData: false ) return 也不起作用。

编辑:

我有另一个名为" articles.coffee"的Jquery文件。下面有一个ajax回调,认为它可能是影响其他jQuery代码的那个。但是,我试过删除" articles.coffee"并且同样的问题仍然存在。

将articles.js中的代码复制并粘贴到浏览器控制台中。浏览器控制台没有错误。

articles.coffee

//= require rails-ujs
//= require jquery
//= require bootstrap-sprockets
//= require jquery_ujs
//= require jquery.transit.js
//= require turbolinks
//= require articles.js
//= require_tree .

我原来的application.js文件

php artisan config:clear
php artisan cache:clear

4 个答案:

答案 0 :(得分:1)

如果您已按顺序添加ISNULL()NULL。然后下一个问题可能是jquery.js如果您正在使用它。

articles.js
  

注意:在Rails> = 4那里。请检查一下。

答案 1 :(得分:0)

如果在页面加载的同时加载,则不应出现任何错误。但如果这是点击按钮后出现的弹出窗口代码的一部分,你应该试试这个:

<pre>$(document).ready(function(){
  // we assum the pop-up container loads at the same time the page is loaded
  $('div.pop_up_container').on("click",".show-advanced-search",function(){
    $(this).next('.advanced-search').toggle();
  });
});</pre>

答案 2 :(得分:0)

嗨试试这个 articles.js

    $(document).ready(function(){
  $('.show-advanced-search').click(function(){
    $('.advanced-search').toggle();  
  });
});

jsfiddle

答案 3 :(得分:0)

我通过组合articles.coffee和articles.js文件来修复它。

<强> articles.coffee

jQuery(document).on 'click', 'a.show-advanced-search', () ->
    $('.advanced-search').toggle()

好像有两个单独的文件,甚至在application.js中都指定两个文件都不起作用。