Предотвратить запуск 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/


person Neal Carroll    schedule 05.03.2011    source источник
comment
ваш ответ в заголовке. mouseenter + mouseleave not mouseover + mouseout - это скорректированные события, которые предотвращают всплытие к мыши по ошибке, если элемент является дочерним элементом держателя события. если вы уже пробовали это, используйте www.jsfiddle.net, чтобы создать пример и объяснить желаемое поведение, и вы получите помощь :)   -  person Dimitar Christoff    schedule 05.03.2011
comment
Ой, я забыл вернуть код. Я пытался навести курсор мыши, но сначала использовал mouseenter. Вот jsfiddle jsfiddle.net/AjWuL   -  person Neal Carroll    schedule 06.03.2011
comment
Возможно, я сегодня немного выпил, но это работает, как задумано. скольжение останавливается на элементе mouseenter и не возобновляется по ошибке, пока вы перемещаете мышь в пределах любого дочернего элемента. вот улучшенная версия вашего класса с добавленными событиями, которые запускаются при различных достижениях и паузах цикла. jsfiddle.net/dimitar/AjWuL/2 - наверное, не лучший мой код, но это улучшение . обратите внимание, что я добавляю события в родительский el как this.parent, а не в узлы прокрутки (отдельные события vs nnn)   -  person Dimitar Christoff    schedule 06.03.2011
comment
Спасибо за улучшение! Думаю, мне следовало уточнить. Справа от видимого .headitem курсор мыши запускается для невидимого .headitem. Возможно, вам придется развернуть окно результатов, чтобы ротатор оказался в центре, чтобы увидеть проблему.   -  person Neal Carroll    schedule 06.03.2011
comment
это точно - он не сработает, потому что событие теперь находится в родительском узле, а не на каждой панели. проверьте журнал событий в консоли: jsfiddle.net/dimitar/AjWuL/4   -  person Dimitar Christoff    schedule 06.03.2011


Ответы (1)


да, вы можете просто добавить еще один класс к элементам списка, на которые вы не хотите реагировать, и сделать что-то вроде этого

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

вам нужно адаптировать это к своему коду, я не знаю, как поместить это в свой класс на jsfiddle.

person nope    schedule 03.06.2011