javascript - Fullpage.js - 自定义按钮不会更新 URL 中的锚标记
问题描述
我正在使用 fullpage.js 创建一个带有滚动幻灯片的网站。一切都按预期工作,除了一个随机显示哪个幻灯片的按钮。单击按钮时,站点滚动到预期的幻灯片,但 URL 栏中的锚点名称不会更新。
奇怪的是,如果您单击浏览器上的后退按钮,它会显示在 URL 栏中,然后再次单击返回上一张幻灯片。我的假设是实际的锚点被正确捕获,但有些东西阻止它显示在 URL 栏中。
这是我正在使用的代码:
// Capture the number of slides
ritualsCount = window.ritualsCount;
// Create the anchors
function buildRitualAnchors() {
var array = [];
for (i = 0 ; i < (ritualsCount + 1); i++) {
array.push("page" + i);
}
return array
}
// Randomizer button
$('.randomizer').click(function() {
var randomNumber = Math.floor((Math.random() * ritualsCount) + 2);
fullpage_api.moveTo(randomNumber, 1);
});
我在这里想念什么?我试过弄乱,location.hash
但似乎它已经很好地捕获了这些信息。
您可以在此处查看该网站 - https://be-inclusive.sypartners.com/
解决方案
那是因为.randomizer
是锚标签。单击任何锚标记时,它具有重定向到它的默认行为href
。在您的情况下,即#
,因此在您的单击处理程序事件侦听器完成它的执行后,它会重定向到锚标记的 href。
可能的解决方案是
您可以使用
event.preventDefault()
来停止该默认行为。$('.randomizer').click(function() { event.preventDefault(); var randomNumber = Math.floor((Math.random() * ritualsCount) + 2); fullpage_api.moveTo(randomNumber, 1); });
根据预期拥有/更新锚标签的href。
更改
<a>
为不同的元素类型,例如<button type="button">
.
推荐阅读
- javascript - MongoDB:使用 $map 更新查询管道中的对象
- machine-learning - 在机器学习模型中使用黄金特征的最佳方法是什么?
- pyspark - pyspark UDF 函数引用全局 DataFrame 导致错误
- python - Django 管理员重用标头
- python - 如何循环回到代码的开头
- html - 如何在 Django 中创建一个下拉菜单,如下所示?
- python - 如何为这些方法创建测试用例
- python - 矩阵乘法后如何在pytorch中获得毕业生?
- r - 根据条件验证R中两个数据框之间的列中的值
- python - 日期时间本地化不计入 DST