0

我正在使用 jQuery Bubble Popup v 2.3.1 http://www.vegabit.com/jquery_bubble_popup_v2/

我在两个相邻的元素上使用它时遇到问题,并且可以选择 true。当我将鼠标悬停在一个并将鼠标移到气泡上时;如果鼠标到达气泡后面的另一个元素,第二个气泡会出现在第一个气泡上。表示一次显示两个气泡。

我希望仅在气泡可见时才显示气泡(而不是在显示的气泡的背面),并且我一次将鼠标悬停在它上面也有一个气泡。请帮忙!

4

1 回答 1

0

我遇到了同样的问题,即为相邻元素显示另一个弹出窗口。下面是我自己管理鼠标事件的代码。我希望这个脚本能帮助你。

<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 以设置气泡弹出的预加载图像。

于 2011-09-06T15:21:24.380 回答