代码之家  ›  专栏  ›  技术社区  ›  robjmills

用原型观察多个选择菜单

  •  0
  • robjmills  · 技术社区  · 15 年前

    我想观察多个选择菜单并使用原型响应它们的更改,但似乎只观察到第一个菜单。这是我的代码:

    $('product_options').select('select').invoke("observe","change",optchange);
    

    例如,如果产品选项中有3个选项,那么它只观察第一个选项,我认为这可能是因为调用,所以我尝试了以下方法:

    $('product_options').select('select').each(function(sel){
        $(sel).observe("change",optchange);
    });
    

    不过还是不行,有什么问题吗?

    作为一个 console.debug() 显示所有选择菜单

    1 回复  |  直到 13 年前
        1
  •  2
  •   user358390    15 年前

    您检查过JS错误控制台吗?下面的工作很好:

    <html>
      <head>
        <title>optchange</title>
        <script type="text/javascript" src="prototype.js"></script>
      </head>
      <body>
        <div id="product_options">
          <select id="o0">
            <option>1</option>
            <option>2</option>
          </select>
          <select id="o1">
            <option>1</option>
            <option>2</option>
          </select>
          <select id="o3">
            <option>1</option>
            <option>2</option>
          </select>
        </div>
        <script type="text/javascript">
          function optchange(e) {
            alert("optchanged");
          }
          $('product_options').select('select').invoke("observe","change", optchange);
        </script>
      </body>
    </html>