我正在寻找 slick.js 的普通 js 替代品。我正在尝试将其替换为 tiny-slider 。不过,我只有一个问题,因为我使用的是 Kentico 和 asp.net,所以所有内容都包含在表单标记中。
使用 slick,如果我检查点按钮的事件监听器,它会在表单监听器之前注册(并且 slick 使用 event.preventdefault
处理其余部分)。
使用tiny-nav,无论我将脚本标签放在哪里,也无论我从哪里加载库(head、body、inline),tiny-slider 都是事件监听器队列中的最后一个。这意味着单击点(即按钮)即可提交页面。
我在这里缺少什么吗?
编辑:这是代码:
document.addEventListener("DOMContentLoaded", function () { //also same result with $(function(){
tns({
container: '.my-slider',
autoplay: true,
items: 1,
autoplayButtonOutput: false,
lazyload: true,
controlsContainer: '.slider-controls',
controlsPosition: 'bottom',
navPosition: 'bottom'
//navContainer: 'dots-container'
});
});
最佳答案
如果我没理解错的话,问题是Tiny-Slider的控制按钮触发<form>
而不是控制 slider ?
在这种情况下,您必须添加 type="button"
给每个<button>
在此脚本中,因为默认情况下(如果未指定)每个 <button>
配有 type="submit"
因此,它会触发 <form>
。添加上述参数时,请确保type="submit"
紧接在 <button>
之后标签,例如:<button type="button" data-controls="prev" tabindex="-1">
。
我刚刚开始使用 Tiny-Slider 并偶然发现了这个确切的问题,所以我想我可以分享解决方案。
关于javascript - 小 slider 点击监听器注册太晚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55476398/