所以我试图在与jQuery mobile的配合中使用swipe.js。
我进行了设置,以便swipe.js滑块在jqm'pageshow'事件中自动启动。
我现在遇到的问题是,当我离开页面并回来时,滑动功能中的代码会再执行一次。
这个问题似乎与jqm相当普遍,我在SO和其他网络上阅读了很多可能的解决方案。 但是,所有这些似乎对其他人有效的解决方案都涉及“pageshow”事件中的次要“点击”事件。
这些解决方案例如:http://www.gajotres.net/prevent-jquery-multiple-event-triggering/似乎很棒,但我的“点击”功能在哪里,遗憾的是我没有。
我有点失落,因为我没有点击事件。 我相信这个函数已经绑定到'pageshow'事件......并尝试了许多不同的方法来解决这个问题。
$(document).off('pageshow', '#home').on('pageshow', '#home', function() {
var home = document.getElementById('mySwipe');
window.mySwipe = Swipe(home, {
auto: 5000,
speed: 500,
disableScroll: true,
callback: function(index) {
console.log(index);
}
});
});
上面的代码尝试从上面的链接实现解决方案#2,然后从'pageshow'解除绑定'.off',然后再用'.on'绑定它。 但我做错了,我不明白。
我应该提一下swipe.js看起来运行得很好,但是当尝试将回调中的索引值检索到控制台时,上面的代码会在每次返回#home页面时重复一次console.log。 / p>
此外,.js代码位于标题中,我正在使用一个具有多个页面ID的索引页面。
任何人都可以看到我在这里无法连接的点吗?