首页 >web前端 >js教程 >如何使用 Rails 4 和 Turbo-Links 可靠地触发 jQuery 事件?

如何使用 Rails 4 和 Turbo-Links 可靠地触发 jQuery 事件?

DDD
DDD原创
2024-12-10 17:02:09474浏览

How Can I Reliably Trigger jQuery Events with Rails 4 and Turbo-Links?

使用 Turbo-Links 在 Rails 4 中利用 jQuery 事件

Rails 4 开发人员在使用 Turbo-Links 时经常遇到组织 JavaScript 文件的困境。通常,jQuery 的“ready”事件用于在页面加载时触发 JavaScript 执行。但是,启用 Turbo-Links 后,此事件无法在后续页面转换时触发。

要解决此问题,了解 Turbo-Links 的运作方式至关重要。与传统的页面重新加载不同,Turbo-Links 允许无缝页面转换,而无需完全加载新页面。因此,与 DOM 初始加载过程绑定的 jQuery 的“ready”事件在第一页加载后不再触发。

幸运的是,Turbo-Links 提供了解决方案。每当转换到新页面时,它都会广播“page:load”事件。该事件可用于模仿 jQuery 的“就绪”事件的行为,并确保 JavaScript 代码的正确执行。

在 CoffeeScript 中,可以通过以下方式实现:

ready = ->

  # JavaScript code

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

在 Vanilla 中JavaScript,等效代码为:

var ready;
ready = function() {

  # JavaScript code

};

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

在 Rails 5 和 Turbolinks 5 中,“page:load”事件具有已被“turbolinks:load”取代。在这种情况下,JavaScript 代码可以简化为:

$(document).on('turbolinks:load', function() {

  # JavaScript code

});

通过利用这些技术,Rails 4 开发人员可以确保 jQuery 事件即使在启用 Turbo-Links 的情况下也能可靠地运行,从而实现无缝且响应迅速的用户经验。

以上是如何使用 Rails 4 和 Turbo-Links 可靠地触发 jQuery 事件?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn