Проблема с jQuery Bubble Popup v 2.3.1 - PullRequest
0 голосов
/ 19 апреля 2011

Я использую jQuery Bubble Popup v 2.3.1 http://www.vegabit.com/jquery_bubble_popup_v2/

У меня проблема при использовании этого на двух соседних элементах с возможностью выбора true.Когда я наведите курсор мыши на один и наведите курсор мыши на пузырь;если мышь достигает другого элемента, который находится позади пузыря, второй пузырь появляется поверх первого.Означает, что одновременно отображаются два пузырька.

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

1 Ответ

0 голосов
/ 06 сентября 2011

Я столкнулся с той же проблемой отображения другого всплывающего окна для соседнего элемента. Ниже приведен код, в котором я сам управлял событиями мыши. Надеюсь, этот скрипт поможет вам.

<script type="text/javascript">
    jQuery(document).ready(function() { 
            var MouseOverOnBubble = false;          
            jQuery('.ClassName').CreateBubblePopup({                                
                themeName: 'all-azure',
                themePath: 'jquerybubblepopup-theme',
                manageMouseEvents: false
              });           
              jQuery('.ClassName').mouseover(function(){                        
                        var button = jQuery(this);
                        var info = "something";
                        var generatedId = button.GetBubblePopupID();
                        if(!button.IsBubblePopupOpen())
                        {               
                            jQuery.get('getData.php?data='+info, function(data) {
                                var seconds_to_wait = 1;
                                function pause(){
                                    var timer = setTimeout(function(){
                                        seconds_to_wait--;
                                        if(seconds_to_wait > 0){
                                            pause();
                                        }else{
                                            button.SetBubblePopupInnerHtml(data, true); //false -> it shows new innerHtml but doesn't save it, then the script is forced to load everytime the innerHtml...                                             
                                            button.ShowBubblePopup();//Its freezes bubble until .UnfreezeBubblePopup(),.ShowBubblePopup() or .HideBubblePopup() are called.                             
                                            jQuery('#'+generatedId).mouseover(function(){MouseOverOnBubble = true;jQuery('#'+generatedId).css('display','block');});    
                                            jQuery('#'+generatedId).mouseout(function(){MouseOverOnBubble = false;jQuery('#'+generatedId).css('display','none');});
                                        };
                                    },1000);
                                };pause();                          
                            }); 
                        }
                        else
                        {
                            jQuery('#'+generatedId).css('display','block');
                        }

                }); //end mouseover event   
            jQuery('.ClassName').mouseout(function(){
                var button = jQuery(this);                              
                var seconds_to_wait = 1;
                function pause(){
                    var timer = setTimeout(function(){
                        seconds_to_wait--;                  
                        if(seconds_to_wait > 0){
                            pause();
                        }else{
                            if(!MouseOverOnBubble){button.HideBubblePopup();}
                        };
                    },1000);
                };pause();              
            });
    });
</script>

Вы также можете попробовать использовать $ .ajax для генерации ajax-запроса, из которого вы можете установить beforeSend для настройки предварительной загрузки изображения для всплывающего окна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...