【问题标题】:Jquery Doesn't work On RailsJquery 在 Rails 上不起作用
【发布时间】:2016-07-19 16:51:18
【问题描述】:

我在 rails 上使用 jquery 时遇到问题。在我的 cmets.js 文件中添加

//= require jquery
//= require jquery_ujs
//= require cocoon
//= require bootstrap-sprockets
//= require turbolinks
//= require_tree .

$( document ).ready(function() {
  alert("This javascripts thing is reals making me mad!");
});
$(document).ready(function(){
    $("#comments_link").click(function(){
        $(".comments-section").toggle();
    });                             
})

在我的 application.html.haml 我有;

  = stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true 
  = javascript_include_tag 'application', 'data-turbolinks-track' => true 
  = csrf_meta_tags 

!!!!!!!!!!!!!!!!!!更新!!!!!!!!!!!!!!!!!! 它通过添加 preventDefault 得到解决。最终版本如下:

$(document).ready(function(){
$(".harun").click(function(e){
    e.preventDefault();
    $("section").toggle();
});                             

})

【问题讨论】:

  • 不应使用$(document).on("ready"....,它已被弃用api.jquery.com/ready。怀疑这会解决错误,但尝试将其中的代码移动到 alert() 之后并删除它
  • 我尝试了正常的 $(document).ready 方式。它也不起作用。我应该在那里把它改成正常的。谢谢你展示它。
  • 显示的 jQuery 代码在语法上是正确的。生成的源在浏览器中是什么样子的
  • 好吧,因为我是新手。我想你说的是“检查元素”。如果是真的,它会说“未捕获的语法错误:无效或意外的令牌”。在控制台上我做了 $(".cmets_section").show() ,现在我更困惑为什么不在页面上工作。
  • 我是说看看 rails 发送到浏览器的实际代码。尝试在浏览器中查看源代码......或打开浏览器开发工具并探索 (F12)

标签: javascript jquery ruby-on-rails syntax rubygems


【解决方案1】:

这与您在其他问题中遇到的基本问题相同:Can't select link_to tag as jquery selector Rails

您正在使用turbolinks,它不会在页面转换时触发$(document).ready 事件。从 turbolinks 文档复制:Running JavaScript When a Page Loads

您可能习惯于安装 JavaScript 行为以响应 window.onloadDOMContentLoaded 或 jQuery ready 事件。使用 Turbolinks,这些事件只会在初始页面加载时触发,而不是在任何后续页面更改之后触发。

在许多情况下,您可以简单地调整代码以侦听 turbolinks:load 事件,该事件在初始页面加载时触发一次,并在每次 Turbolinks 访问后再次触发。

document.addEventListener("turbolinks:load", function() {
  // ...
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-28
    • 2019-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-28
    • 2020-08-26
    • 2014-06-12
    相关资源
    最近更新 更多