javascript - jquery - $(document).ready( 和 $(document).on ('ready page:load' 之间有什么区别

标签 javascript jquery html ruby-on-rails

我有一个关于 jQuery 的问题。

当我使用时

$(document).ready( function() { alert("!"); } );

此警报消息仅有效一次!在第一页。 (例如索引页)

当我将第一页移动到其他页面时,其他页面永远不会工作。

但是当我使用时

 $(document).on('ready page:load', function() { alert("!"); } );

它总是运作得很好。 这两种说法有什么区别?

请告诉我。

最佳答案

$(document).ready(...) 内置于 jQuery 功能中。它在运行传递的函数之前等待 DOM 加载。每次页面加载时只会调用一次。

$(document).on('ready page:load', ...) 是一个自定义监听器,属于 Turbolinks 的一部分图书馆。

Turbolinks 基本上可以防止每次单击链接时重新加载页面,而是使用 JavaScript 将页面 HTML 与服务器为该链接发送的内容交换。

由于 $(document).ready(...) 仅在页面完成加载时触发,并且 Turbolinks 阻止页面重新加载,因此 $(document).ready(.. .) 只会触发一次,而 $(document).on('ready page:load') 将在 Turbolinks 加载新页面时触发。

关于javascript - jquery - $(document).ready( 和 $(document).on ('ready page:load' 之间有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33634699/

相关文章:

javascript - 无法使用 `this` 从事件处理程序中访问对象的方法

javascript - 为什么名称功能不起作用。 chrome 控制台输出 'string is not a function' ?

javascript - 返回 false 不会停止表单提交

javascript - 完成 ajax 调用数组的循环,而不是因调用之一的错误而中断

javascript - 如何在 php echo 中使用标签链接中的图像提示删除确认

javascript - 函数调用另一个而不等待完成

javascript - 如何使用插件中的函数

jquery - Highstock 的 data.csv 从 01.01.1970 开始

javascript - 如何将点击区域限制为文本?

html - css 导航栏悬停下拉