2013-05-31 3 views
0

HTML :Mootools : 하위 요소를 확인하는 방법?

<ul id="mainmenu"> 
    <li class="mainmenu-item">Menu 1 
     <ul class="mainmenu-child"> 
      <li>Menu1</li> 
      <li>Menu2</li> 
      <li>Menu3</li> 
     </ul> 
    </li> 
</ul> 

JS :

$$('#mainmenu li').addEvents({ 
    'mouseenter':function() { 
    alert(this.contains($$('.mainmenu-child'))); 
    } 

});

항상 거짓입니다.
hasChild() 메서드가 동일한 결과를 사용하려고 시도했지만 항상 false입니다. 체크하는 방법에 요소가 하나 또는 하나씩 있습니까? 그 결과 부울 유형이 필요합니다.

답변

0

이 작동 할 BUT :

문제가
$$('#mainmenu li').addEvents({ 
    'mouseenter': function() { 
     var hasChild = !!this.getElement('ul.mainmenu-child'); // falsy/truthy. 
     console.log(hasChild); 
    } 
}); 

, 당신이 mouseenter A의 사용 또한 자신의 사건을 가진 아이가있다. 따라서 마우스 요소를 마우스 오버하면 부모의 마우스 포인터도 실행되므로 true와 false를 얻을 수 있습니다. 루트 엘이나 그렇지 않은 경우 추가 검사를 추가해야합니다.

요소가 단순히 요소를 요청하는지 검사 - 일치하는 것이 발견되면 객체 또는 null/undefined를 반환합니다 (거짓) .

+0

고마워, 그것에 대해 생각해 볼게! – Molod

0

1 개의 요소 만 확인할 수 있다고 생각합니다. 당신이 선택기를 사용하는 경우

는 그리고, 단지 this.getChildren (선택) .length는> 0

+0

^아이가없는 경우에도 항상 진실입니다 ... – Molod

관련 문제