2011-03-05 47 views
7

我有一個自動旋轉的內容滑塊,當您將鼠標懸停在它上面時,它將停止旋轉。我的問題是該位的代碼在這裏:防止Mootools Mouseenter發射隱藏的子元素

$$('.holder').addEvents({ 
    mouseover: function(){ 
     clearInterval(rollingon); 
    }, 
    mouseout: begin 
}); 

HTML:

<div id="fliptable"> 
    <div class="holder"> 
    <ul class="headliner" style="left: 0;"> 
     <li class="headitem"> 
      <div class="squared" style="opacity: 1;"> 
          *content* 
      </div> 
     </li> 
    </ul> 
    </div> 
</div> 

Fliptable擴展瀏覽器的整個寬度。所以不同的列表元素的不透明度隨着它的變化而變化。現在我的問題是鼠標懸停在隱藏的列表元素上時會觸發。無論如何,我不能讓孩子們受火嗎?

這裏是JS提琴:http://jsfiddle.net/AjWuL/

+2

你的答案在標題中。 'mouseenter' +'mouseleave'不是'mouseover' +'mouseout' - 這些是調整的事件,如果元素是事件持有者的子元素,則可以防止錯誤冒出到mouseout。如果您已經嘗試過,請使用www.jsfiddle.net創建一個示例並解釋您的期望行爲,您將獲得幫助:) – 2011-03-05 15:42:29

+0

哦,哎呀,我忘了更改代碼了。我正在嘗試mouseover,但我最初使用的是mouseenter。這裏是jsfiddle http://jsfiddle.net/AjWuL/ – 2011-03-05 21:04:05

+0

我今晚可能已經喝了一點,但是這個按預期工作。在mouseenter上滑動停止,並且在將鼠標移動到.holder的任何孩子的內部時不會錯誤地恢復。這裏有一個改良版的課程,增加了一些事件,可以激發各種進步和停頓的週期。 http://jsfiddle.net/dimitar/AjWuL/2/ - 完全不是我最好的代碼,但它是一種改進。請注意,我將這些事件添加到父級el中作爲this.parent,而不是滾動節點(單數和nnn事件) – 2011-03-05 23:14:09

回答

1

是的,你可以添加其他類列表中的元素你不想作出反應,甚至做這樣的事情

window.onmouseover=function(e){ 
if(e.target.className!="hiddenelements"){ 
what you want 
} 
你必須

適應這個你的代碼,我不知道如何把這個在你的課上jsfiddle。