首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Turbolinks & Ladda

Turbolinks & Ladda
EN

Stack Overflow用户
提问于 2015-05-13 05:11:42
回答 1查看 245关注 0票数 1

我试图在Rails应用程序中同时使用Turbolinks 3.0拉达。拉达文件指出:

“如果要为提交给服务器的表单使用加载动画(总是导致页面重新加载),则可以使用bind()方法

这就是我在实施Turbolinks之前所做的。对于大多数简单的get请求,Turbolinks会自动工作,但是对于表单提交,我将表单切换到远程,并将页面的主div显示在自述文件中。总的来说,这是很好的工作。

但是,如果用户在执行此操作后单击back按钮,则ladda按钮仍然处于其禁用、灰色和加载程序图像状态。我不想依赖计时器。

由于我没有像上面的引号那样重新加载页面,所以我试图在没有bind方法的情况下激活Ladda。但我唯一能想到的办法就是在点击时激活拉达。

但是由于某种原因,如果我绑定一个onclick到submit按钮,它就会打破turbolinks,而表单根本就不会提交。

代码语言:javascript
复制
$(document).on('click', '.ladda-button', function() {
  $(this).ladda('start');
});

这会激活ladda,但是表单不会提交。我正在使用jquery-turbolinks,所以代码应该能工作吗?

另一个方向是通过bind方法继续使用Ladda,然后在页面通过Turbolinks“加载”之前重置任何ladda图像。我做到了以下几点:

代码语言:javascript
复制
$(document).on("page:before-unload", function() {
  $(".ladda-button").ladda();
  $(".ladda-button").ladda("stop");
});

如果我在调试器中放置一个断点,我可以看到,在通过Turbolinks加载下一页之前,它成功地将按钮重置为原来的状态。但当我还击时,加载程序又回到了它的停用/灰色/加载状态。

我不想把整个应用程序重写为客户端javascript和API后端,但我真的希望它有一种快速、无页面刷新的感觉--并使用那些令人敬畏的ladda加载图像。到目前为止,Turbolinks 3.0是很棒的,但是我真的很难理解这个。

任何帮助都将不胜感激!

编辑:我刚刚意识到,如果用户回击,我所有的JS都被破坏了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-13 13:45:46

有一个更大的问题-没有脚本运行时,按回或向前。装载机是我第一个注意到的。

在这里实现了一个解决方案/修复:https://github.com/rails/turbolinks/pull/509

您需要在脚本标记上使用"data-turbolinks-eval=true“来激发JS,即使它是一个页面返回/转发。

然后重新初始化ladda/加载图像。

代码语言:javascript
复制
<script data-turbolinks-eval=always>
  $(".ladda-button").ladda();
  $(".ladda-button").ladda('stop');
  $(".ladda-button").ladda('bind');
</script>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30206177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档