如何将事件侦听器附加到GETElementsByClassName()

时间:2012-10-16 12:41:26

标签: javascript snackjs

我正在使用SnackJS API。我需要将一个事件附加到每个输入元素(文本框),类名为" qty"。我无法使用id属性,因为它是动态生成且唯一的,并且被其他东西使用:

<script type="text/javascript">
    snack.ready(function () {
        // Do your work.
        // Attach an event to QTY Textbox elements.
        var listener = snack.listener({
            node: document.getElementsByClassName("qty"),
            event: 'blur'
        }, function () {
            alert("hello, element.");
        });

        listener.detach();
        listener.attach();
    });
</script>

如何使用getElementByClassName

2 个答案:

答案 0 :(得分:1)

getElementByClassName返回类似数组的结构。你应该遍历它们并以这种方式绑定事件。

答案 1 :(得分:1)

您可以循环遍历getElementsByClassName返回的NodeList(每次循环时调用snack.listener),或按照the API documentation委托事件处理程序:

var params = {
  node: document.body,
  event: 'click',
  delegate: function (node){
    return node.getElementsByClassName('qty')
  }
}
snack.listener(params, someFunction);