应用于未触发的数组元素的函数

时间:2012-12-07 21:25:05

标签: javascript mobile

我整个下午都对这个问题感到难过;我正在尝试将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');
        });

为了保持可靠性,我宁愿不这样做,所以导航可以在路上修改而不用担心。非常感谢任何见解 - 我认为我一直在盯着错误,并且错过了一些简单的事情。

1 个答案:

答案 0 :(得分:2)

您似乎是关闭问题的受害者。当你使用jQuery时,可能只是重写你的循环:

$.each(back,function(i,item){
    new FastButton(item, function(){
        $(item).trigger('click');
    });
});