【问题标题】:Google FastButton Multiple Use谷歌快速按钮多次使用
【发布时间】:2013-02-07 04:55:35
【问题描述】:

我已经在网页中实现了 Google FastButton 脚本。以下:

Trying to implement Google's Fast Button

代码运行良好。我的问题是如何为多个按钮实现此功能。我有几个动态创建的按钮。我不想用自己的功能定义每个按钮。我可以将此脚本与另一个传递一些变量的函数一起使用吗?

例如,<button id="quick" onclick="someFunction(24);">button</button>

当前实现

new FastButton(document.getElementById('quick'), function() {
       alert("hello");
    });
<button onclick="onLayerClick(8)">8</button>

【问题讨论】:

    标签: javascript html mobile


    【解决方案1】:

    这是一种方法:根据您粘贴的链接,FastButton 原型接受一个函数作为其第二个参数 (this.FastButton = function(element, handler)) 并将点击事件传递给该函数。所以如果你做这样的事情:

    HTML:

    <button id="quick">24</button>
    

    JS:

    var myHandler = function(event) {
        var el = event.target;
        console.log(el.innerHTML);
    }
    
    new FastButton(document.getElementById('quick'), myHandler);
    

    然后myHandler() 函数将可以访问点击事件的起源 (event.target) 的 DOM 元素,这将是任何被点击的按钮。因此,您可以访问该按钮的 innerHTML,或者您可以在按钮上放置一个data-mynumber="24" 属性并使用el.getAttribute("data-mynumber") 而不是el.innerHTML...但是您想要识别按钮取决于您。

    【讨论】:

    • 您的逻辑似乎适用于第一个元素。但是之后的每个带有 id 为“quick”的元素都不起作用。如何使用“快速”将其应用于每个 id 或类
    • 您不能拥有多个具有相同 id 的 DOM 元素。如果你改用一个类,你可以做这样的事情(假设 jQuery):$(".quick").each(function() { new FastButton(this, myHandler); });
    • 我正在使用 JavaScript。我将如何使用标准 js 来做到这一点
    • var buttons = document.getElementsByClassName("quick"); for(var i = 0; i &lt; buttons.length; i++) { new FastButton(buttons[i], myHandler); } 是一种方式
    • 完美!非常感谢您的帮助!
    猜你喜欢
    • 2011-09-12
    • 2013-05-08
    • 2016-02-28
    • 1970-01-01
    • 2016-01-30
    • 2017-12-23
    • 2015-11-30
    • 2018-11-09
    • 2018-04-30
    相关资源
    最近更新 更多