问题标签 [hashchange]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jquery - jQuery hashchange 问题
我有一个简单的代码,三种形式的一种不工作,另两种形式工作但我想了解是什么导致两种方法工作。
请看一下简单的代码。 http://jsfiddle.net/NjWAz/(不能正常滑动)。
而如果只附加了 div id,那么它会正确滑动。 http://jsfiddle.net/NjWAz/2/ (这是我的第一个问题,是什么导致它实际工作?如何改变 ids 使它工作?)
并以另一种形式。 http://jsfiddle.net/NjWAz/1/ (它也可以工作,所以这是我的第二个问题,即通过阻止默认行为如何使其工作......以及什么是破坏其在http://工作的默认行为jsfiddle.net/NjWAz/)
methods - 检查jQuery方法是否存在
我正在尝试检查 jQuery 是否具有对窗口对象的 .hashchange 方法引用,例如
但我在支持和不支持该功能的两种浏览器中不断收到“未捕获的类型错误:无法调用未定义的方法'hasOwnProperty'”。有任何想法吗?
jquery - Jquery Hash Change - Ajax 表单后退按钮
我正在使用 Jquery Hash Change 来管理我的后退按钮。
单击链接('a')可以正常工作,它将href添加为哈希。链接工作正常。
我现在的问题是,当我的表单按钮被点击时,我如何才能做到这一点。我有表单按钮,单击该按钮会触发处理我的表单并加载成功页面的 ajax 调用(所有这些都不会离开当前页面)。当单击提交按钮来处理表单时,它不会创建哈希,因此即使处理了表单,当单击后退按钮时,它也会跳转到上一页而不是返回到我的表单。
如何添加此功能,以便当通过 ajax 提交表单时,我可以使用后退按钮返回表单?谢谢。
jquery - 使用 Jquery 过滤功能锚定标签和浏览器历史记录
我正在处理一个带有导航的页面,该导航过滤页面上的产品。当单击链接和按下浏览器后退按钮时,我使用 jQuery hashchange 添加和删除导航链接的当前状态。但是,filter() 函数仅在单击导航链接时才起作用,我想在单击浏览器后退按钮或 url 末尾包含锚标记时实现过滤器功能。
这是该页面的链接:
http://dl.dropbox.com/u/20585252/test/index.htm
这是相关的 Jquery 部分:
非常感谢正确方向的一点。
javascript - 正确编码的字符串在推入 window.location.hash 时被解码
目标:data
正确地将属性中的字符串放入window.location.hash
.
编码:
问题:一旦data-path
属性包含空格,Firefox 就无法正确放置散列。该空间将显示为未编码,而在其他浏览器中它被正确编码为%20
.
奇怪的怪癖:如果我调试代码,则字符串与编码空间一起列出。
完成的研究:我找到了很多在 Firefox 中正确读取哈希的解决方案。以一种或另一种方式,这适用于我的代码。
问题:如何阻止 Firefox 对我放入 window.location.hash 的字符串中的空格进行 urldecoding
jquery - 通过检测哈希 (#) 后的路径将“活动”类添加到当前菜单项?
我的网站在其 URL 中使用哈希来使用 AJAX (我从本教程中获得)进行导航。单击链接时,会在 URL 的末尾添加 /#/(链接名称)。
如果我在 mysite.com,然后单击“照片”,则 url 变为 mysite.com/#/photos,并且“#content” div 将使用 /photos 中的 #content div 重新填充。
此外,如果由于某种原因,用户手动键入“mysite.com/photos”,然后点击“bio”,他的 URL 将看起来像“mysite.com/photos/#/bio”
页面没有重新加载,并且 URl 与菜单 a 标记中的 href 不完全匹配的事实使我很难弄清楚如何将活动类添加到当前菜单项。
我的菜单是由 wordpress 生成的,看起来像这样
请帮忙!
javascript - ajax导航中的jquery ajax导航
我将此代码用于我的主站点导航,它通过 ajax 加载每个页面并具有后备功能。
这很好,但是当我从另一个页面加载内容时,例如 about.html,我还加载了更多按钮以在#content-wrap 中进行导航。
所以#content-wrap 现在包含一个数据框和一些用于导航的按钮。当我单击新导航时,它需要在数据框中加载新数据。
首先,我尝试复制上面的脚本,但使用新的锚点,但是我遇到了冲突。
我想我需要某种 if 语句,我已经研究过 if (function !== undefined) 之类的东西,但不知道该怎么做。
我不确定我对自己的解释有多好,我很困惑解释它,但基本上我想将上面的代码与下面的基本相同的代码结合起来而不会发生冲突。
更新:有点工作,但改变了我的计划
jquery - 为什么在 Jquery Mobile 向后转换中 hashchange 会触发两次?
我迷路了....我正在尝试在pagebeforechange上重定向 Jquery Mobile 转换- 根据JQM 文档。
这应该适用于向前和向后的转换。虽然从技术上讲,我在向后过渡时遇到了问题。第一个有效,之后每次后退btn点击我都会得到2+向后转换。
我已经排除了 URL(现在只传递完整路径与路径和对象(如 $('#page') );不是这样。现在我正在寻找另一个罪魁祸首,但找不到它。
也许其他人看到了什么或者可以给我一个提示。谢谢参观:
带有注释的简要设置:
这是一个示例页面: 示例
要重现 click page2 menu, page3 menu,清除控制台,单击浏览器返回一次,检查控制台(SINGLE RUN),再次单击浏览器返回,检查控制台(两次运行...)
问题
我不是在寻找解决方案 - 只是关于可能导致第二次向后过渡两次触发的一些想法。
感谢您的一些想法!
编辑
我在 sript 中添加的控制台越多,就越明显,第二个不需要的 hashchange 会在短暂的延迟后出现。我首先认为它与 JQM 的fake_onhashchange事件有关,但完全删除它并没有成功。继续寻找。
EDIT2 - found an issue on Github - so it's not my script... phew... Still hints are welcome :-)