Проблема JQuery с вложенными событиями мыши - PullRequest
0 голосов
/ 17 июня 2011

У меня, похоже, возникла проблема при использовании всех этих трех событий одновременно.

У меня есть большой div, к которому привязаны mouseup, mousedown и mousemove.Внутри этого большого div есть несколько меньших div (которые я бы хотел нажимать).Я должен добавить, что элемент clickable является дочерним по отношению к большему div.

Проблема в том, что событие click, похоже, не работает.Однако, если я закомментирую другие события мыши, все будет работать нормально.

Я предполагаю, что здесь есть какой-то конфликт событий, поскольку щелчок - это действительно сочетание mousedown и mouseup.

    <script type="text/javascript">
            $(document).ready(function() {
                //Create tooptips for existing zones
                $('.oldBox').tipsy({
                    title: 'data-callrange',
                    gravity: 'sw'
                });

                var x1,y1;
                $('.openTab .img_container').live('mousedown', function(e) {
                    e.preventDefault();


                });

                $('.openTab .img_container').live('mousemove', function(e) {

                });

                //Process just created box
                $(document).mouseup(function() {

                });

                $('.oldBox').live('click', function(){
                    $('#mouse_pos').html('You clicked '+ $(this).attr('data-callrange'));
                });
            });
   </script>

1 Ответ

2 голосов
/ 17 июня 2011

В событиях на родительском div вы можете проверить, что выбранный элемент (цель события) действительно является родительским div, а не дочерним div. См. эту скрипку в качестве примера.

В обработчиках событий для родителя div используйте что-то вроде:

if(event.target.id == "i_am_a_big_div_with_three_events") {
    //Do stuff
}

И прикрепите событие клика к ребенку div как обычно.

...