4

有没有办法强制事件document.ready通过 Javascript 触发?新的 Rails 4 默认默认使用turbo 链接,在切换页面时不会触发此事件。这会导致包装在$(function(){});.

我环顾四周,看不到任何通过代码触发此事件的方法,此处的大多数答案都提供了其他解决方法。

那么是否有可能通过常规 J​​avascript 代码使 document.ready 触发?

4

4 回答 4

3

那你在用jQuery吗?如果是,请尝试$.ready(); 在代码末尾显式调用 Jquery 的函数。这将强制调用所有jQuery “就绪”函数,包括您自己的和您正在使用的任何插件中的函数。

如果这不起作用,您可以尝试$(window).load();.

如果这些都不起作用并且您正在使用某种类型的异步调用,那么您可能还有其他一些问题需要首先清除。祝你好运!

于 2013-07-06T03:15:41.867 回答
1

最简单的解决方案:

插入您的 Gemfile:

gem 'jquery-turbolinks', '~> 1.0.0'

插入你的 application.js 这个:

//= require jquery.turbolinks

(别忘了一个bundle update

如果您的咖啡脚本代码中有以下内容,它将被触发以进行整页重新加载或在 turbolinks 处于活动状态时通过链接打开页面:

$ ->
   alert 'Hello World'

$ ->意思document.ready

于 2013-07-07T15:46:29.150 回答
1

我认为在不对代码进行重大更改的情况下执行此操作的最简单方法是侦听自定义事件而不是准备就绪,并在准备就绪事件中触发自定义事件。

于 2013-07-06T03:25:08.567 回答
1

来自turbolinks 文档:您必须让文档监听 turbolinks 自定义页面事件之一,例如:

$(document).on('page:change', function() {
    // Your code
});
于 2013-07-06T03:25:58.440 回答