2012-02-23 2 views
4

Проблемы, которую я вижу в том, что мыши над событиями, кажется, не пузырь, когда я делаю что-то вроде:knockout.js связывающего события - неожиданное поведение с наведением мыши и MouseOut событиями

<div data-bind='events: {mouseover: someFunc, mouseout: someOtherFunc}'> 
    <div data-bind='text: someText'></div> 
</div> 

То, что я видение - это когда я изначально наводил курсор, срабатывает функция someFunc (я использую эти функции для применения класса, чтобы получить эффект зависания). Однако, когда мой курсор входит во внутренний div, моя функция mouseout срабатывает, даже если событие mouseover должно пузыриться из внутреннего div в внешний div.

Эта скрипка демонстрирует вопрос: http://jsfiddle.net/cSBcC/1/

В скрипкой, просто попробовать наведите курсор мыши на различные Ли и, когда курсор попадает во внутренний DIV класс «парить» удаляется, несмотря на то, что мы до сих пор Mouseover на ли.

Любые идеи?

ответ

8

Если вы ссылаетесь на jQuery (который вы есть), то вы можете использовать mouseleave вместо mouseout, поскольку он будет вести себя так, как вы ожидаете.

mouseout события огня даже при перемещении от внешнего элемента к внутреннему элементу.

Вот ваш пример использования mouseleave: http://jsfiddle.net/rniemeyer/KUNcf/

Другим вариантом является просто использовать CSS и удалить связывание как событие: http://jsfiddle.net/rniemeyer/KUNcf/2/

li.name:hover { 
    background-color: yellow;   
} 

+0

Ницца, благодаря RP! – Greg

+0

Спасибо, много! Это проделывает мою голову в течение нескольких дней! – user489998

 Смежные вопросы

  • Нет связанных вопросов^_^