我整个下午都对这个问题感到难过;我正在尝试将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();
});
点击fn永远不会触发;我可以看到应用和移除了tap-higlight,如果我发出警报,每个按钮都会触发它。奇怪的部分?调用数组的特定索引可以正常工作:
new FastButton(back[0], function(){
$(back[0]).trigger('click');
});
为了保持可靠性,我宁愿不这样做,所以导航可以在路上修改而不用担心。非常感谢任何见解 - 我认为我一直在盯着错误,并且错过了一些简单的事情。
答案 0 :(得分:2)
您似乎是关闭问题的受害者。当你使用jQuery时,可能只是重写你的循环:
$.each(back,function(i,item){
new FastButton(item, function(){
$(item).trigger('click');
});
});