我整个下午都被这个问题难住了;我正在尝试将 Google 的快速按钮教程应用于导航上的“后退”按钮:https ://developers.google.com/mobile/articles/fast_buttons 。每个部分都有一个后退按钮,因为它是这样构建的:
<ul class="menu">
<li class="category">
<a class="back"></a>
<li class="product">
</li>
<li class="category">
etc...
菜单的滑入和滑出带有 css3 过渡。这就是让我发疯的原因;我存储所有后退按钮,然后将它们发送到一个数组,并遍历每个调用 FastButton 函数的按钮。
var back = document.getElementsByClassName('back');
back = Array.prototype.slice.call(back);
for (var i = 0; i < back.length; i++) {
new FastButton(back[i], function(){
$(back[i]).trigger('click');
});
}
('li.back').click(function(){
doStuff();
});
click fn 永远不会触发;我可以看到已应用和删除的 tap-highlight,如果我输入警报,每个按钮都会触发它。奇怪的部分?调用数组的特定索引可以正常工作:
new FastButton(back[0], function(){
$(back[0]).trigger('click');
});
为了可维护性,我宁愿不那样做,这样导航就可以在路上修改而不必担心。任何见解都非常感谢 - 我想我一直盯着错误太久了,错过了一些简单的东西。