[英]functions applied to array elements not firing
我整个下午都对这个问题感到难过; 我正在尝试将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');
});
为了保持可靠性,我宁愿不这样做,所以导航可以在路上修改而不用担心。 非常感谢任何洞察力 - 我认为我一直在盯着一个错误,并且错过了一些简单的事情。
您似乎是关闭问题的受害者。 当你使用jQuery时,可能只是重写你的循环:
$.each(back,function(i,item){
new FastButton(item, function(){
$(item).trigger('click');
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.