0

我整个下午都被这个问题难住了;我正在尝试将 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');
        });

为了可维护性,我宁愿不那样做,这样导航就可以在路上修改而不必担心。任何见解都非常感谢 - 我想我一直盯着错误太久了,错过了一些简单的东西。

4

1 回答 1

2

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

$.each(back,function(i,item){
    new FastButton(item, function(){
        $(item).trigger('click');
    });
});
于 2012-12-07T21:52:23.373 回答