$(document).ready(function() { Rails Turbo-links

$(document).ready(function() { Rails Turbo-links

本文关键字:Rails Turbo-links ready document function      更新时间:2023-09-26

使用涡轮链接运行此内容时遇到问题...

$(document).ready(function() {
 var n = '#nav', no = 'nav-open';
  $('#nav-menu').click(function() {
    if ($(n).hasClass(no)) {
        $(n).animate({height:0},300);
        setTimeout(function(){
            $(n).removeClass(no).removeAttr('style');
        },320);
    }
    else {
        var newH = $(n).css('height','auto').height()
            ;
        $(n).height(0).animate({height:newH},300);
        setTimeout(function(){
            $(n).addClass(no).removeAttr('style');
        },320);
    }
 });
});

我尝试过这个没有任何运气:

var ready;
ready = function() {
 ...your javascript goes here...
};
$(document).ready(ready);
$(document).on('page:load', ready);

对不起,我对Javascript没用!

最后两行添加()以要求它们执行

$(document).ready(ready());
$(document).on('page:load', ready());

说明:ready是一个变量,表示您定义的函数。如果你叫它的名字ready,它将返回函数定义。如果调用它来执行,则需要添加()

据我了解,我建议使用jQuery-Turbolinks,这是您安装的使JS与Turbolinks一起工作的gem

我们和你也有类似的问题,因为我们会有

$(document).ready(function() {});

它不会触发 - 这是由于Turbolinks加载文档一次,然后欺骗JS认为它没有重新加载引起的

我会尝试安装 gem 并查看它是否有效:

宝石文件:

gem 'jquery-turbolinks'
Add it to your JavaScript manifest file, in this order:
//= require jquery
//= require jquery.turbolinks
//
// ... your other scripts here ...
//
//= require turbolinks