0

LI内にあるULをターゲットにしようとしていますが、問題が発生しています。HTMLは次のとおりです。

<ul id="main_nav">
  <li class="main"><a href="#">Section 1</a>
    <ul id="dropdown">
      <li><a href="#">Item 1</a></li>
      <li><a href="#">Item 2</a></li>
      <li><a href="#">Item 2</a></li>
    </ul>
  </li>

  <li class="main"><a href="#">Section 2</a>
    <ul id="dropdown">
      <li><a href="#">Item 1</a></li>
      <li><a href="#">Item 2</a></li>
      <li><a href="#">Item 2</a></li>
    </ul>
  </li>

  <li class="main"><a href="#">Section 3</a></span>
   <ul id="dropdown">
      <li><a href="#">Item 1</a></li>
      <li><a href="#">Item 2</a></li>
      <li><a href="#">Item 2</a></li>
    </ul>
  </li>

これがJSです:

    window.addEvent('load', function() {
    $$('li.main').each(function(el){
    el.getChild('dropdown').addEvent('mouseenter',function(e){
        alert("over!");
    });
    el.getChild('dropdown').addEvent('mouseleave',function(e){
        alert("out!");
    });
});
}

問題は、el.getChild('dropdown')を使用してLIの子を取得しようとしたときだと思いますが、これを行う他の方法はわかりません。私はコーダーではないので、助けていただければ幸いです。ありがとう!

4

2 に答える 2

2

getChildの代わりにgetFirstメソッドを使用できます。

window.addEvent('load', function() {
    $$('li.main').each(function(el){
        el.getFirst().addEvent('mouseenter',function(e){
            alert("over!");
        });
        el.getFirst().addEvent('mouseleave',function(e){
            alert("out!");
        });
    });
});
于 2009-01-28T09:16:32.617 に答える
2

問題を引き起こしている可能性があるのは、ID の重複です。は、ページ全体で1 回idだけ使用する必要があります。そのため、複数あると無効な HTML となり、ライブラリで望ましくない結果が生じる可能性があります。<ul id="dropdown">

重複を保持したい場合は、nameまたはclass属性を試してください。

リリース間で変更された可能性があるかどうかはわかりませんが、ドキュメントで複数形しか見つけられません。 getChildren

window.addEvent('load', function() {
    $$('li.main').each(function(el){
        el.getChildren('.dropdown').addEvent('mouseenter',function(e){
            alert("over!");
        });
        el.getChildren('.dropdown').addEvent('mouseleave',function(e){
            alert("out!");
        });
    });
});

しかし、繰り返しになりますが、私は Mootools にあまり詳しくありません。
あなたがおそらく言うことができるように。;)

于 2009-01-28T00:18:32.687 に答える