首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails4和CoffeeScript:当服务器返回304状态代码时,jQuery绑定不工作

Rails4和CoffeeScript:当服务器返回304状态代码时,jQuery绑定不工作
EN

Stack Overflow用户
提问于 2014-01-20 00:25:58
回答 1查看 348关注 0票数 0

我正在Rails 4上构建一个新站点。我注意到当从一个页面浏览到另一个页面时,Rails (Puma)返回304,而不是modified。到目前一切尚好。问题是,当发生这种情况时,加载的页面上的所有jQuery绑定似乎都没有被挂钩。因此,所有页面事件都不起作用(按钮单击等)。这里不涉及ajax,只是正常的页面加载。

如果我在浏览器中重新加载页面,服务器将返回200OK,并且所有绑定都已正确加载。如果我将JS代码粘贴到控制台上,所有绑定都会正确挂钩。这仅仅是服务器返回304时的初始页面加载,没有设置绑定。

我的直觉告诉我,jQuery没有触发“页面加载”事件,因此没有在页面上运行任何Javascript。但我不确定。

EN

回答 1

Stack Overflow用户

发布于 2014-01-20 11:02:47

多亏了mu short的提示(参见对问题的评论),我在这里找到了答案:Holder.js doesn't work with turbolinks

基本上,它的意思是不使用以下代码来初始化页面上的脚本……

代码语言:javascript
运行
复制
$ ->
    # CoffeeScript code here

..。建议使用以下选项:

代码语言:javascript
运行
复制
$(document).bind 'page:change', ->
    # CoffeeScript code here

绑定page:change事件而不是默认的“page onload”事件可以确保在服务器为HTML请求返回304时运行代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21219357

复制
相关文章

相似问题

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