Webboard

Pełna wersja: Okienko Popup się nie chowa
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
wersja skryptu MyBB: 1.6.10
adres forum: http://new-generation.xaa.pl/showthread.php?tid=21
na czym polega problem (screen, opis, komunikaty):
Po kliknięciu w liczbę polubień pojawia się okienko popup i wszystko jest ok. Natomiast nie chce się ono schować po kliknięciu w "X". Kod:
Kod:
<div id="like-box" class="like-popup">
            <div class="like-content">
            <h3>Lubiane przez <a href="#"><img src="images/carbon/close_popup.png" class="btl_close" title="Close Window" alt="Close" /></a></h3>  
          </div>
</div>
CSS
Kod:
.like-popup{
    display:none;
    float: left;
    font-size: 1.2em;
    position: fixed;
    top: 50%; left: 50%;
    z-index: 99999;
background: url('images/carbon/trans60.png') repeat;
background: rgba(0,0,0,0.6);
padding: 8px;
-webkit-box-shadow: rgba(0,0,0,0.5) 0px 10px 20px;
-moz-box-shadow: rgba(0,0,0,0.5) 0px 10px 20px;
box-shadow: rgba(0,0,0,0.5) 0px 10px 20px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
color: #bcbcbc;
}
#like-box h3 {
    border-bottom: 1px solid #2a2a2a;
text-shadow: rgba(0,0,0,0.8) 0px -1px 0px;
background: #282828 url('images/carbon/highlight_reallyfaint.png') repeat-x 0 0;
padding: 8px 10px 9px;
font-size: 16px;
font-weight: 300;
}
.like-content {
    background: #1a1a1a;
margin-top: -15px;
width: 500px;
}
W hrefie do zamknięcia zamień:
Kod:
class="btl_close"

Na:
Kod:
class="btn_close"
Pomogło, ale nie do końca. Nadal nie znika okienko.
A pokaż plik *.js od tego popupa.
Nie jestem pewien czy to ten plik, ale chyba tak.
Okienko to skopiowałem z okienka logowania ze strony głównej.

popup_menu.js
Kod:
var PopupMenu = Class.create();

PopupMenu.prototype = {

    initialize: function(id, options)
    {
        document.currentMenu = "";

        if(!$(id))
        {
            return false;
        }
        this.id = id;
        var element = $(id);
        
        var popupMenu = element.id+"_popup";
        if(!$(popupMenu))
        {
            return false;
        }
        
        this.menu = $(popupMenu);
        this.menu.style.display = "none";
        element.onclick = this.openMenu.bindAsEventListener(this);
    },
    
    openMenu: function(e)
    {
        Event.stop(e);
        if(document.currentMenu && document.currentMenu == this.id)
        {
            this.closeMenu();
            return false;
        }
        else if(document.currentMenu != "")
        {
            this.closeMenu();
        }
        
        offsetTop = offsetLeft = 0;
        var element = $(this.id);
        do
        {
            offsetTop += element.offsetTop || 0;
            offsetLeft += element.offsetLeft || 0;
            element = element.offsetParent;
            if(element)
            {
                if(Element.getStyle(element, 'position') == 'relative' || Element.getStyle(element, 'position') == 'absolute') break;
            }
        } while(element);
        offsetTopReal = offsetTop;
        offsetLeftReal = offsetLeft;
        if(element) // will be true if we broke off the last loop
        {
            // calculate the true top/left position relative to page borders (this is used for checking whether the popup menu will be displayed within the page)
            do
            {
                offsetTopReal += element.offsetTop || 0;
                offsetLeftReal += element.offsetLeft || 0;
            } while(element = element.offsetParent);
        }
        element = $(this.id);
        element.blur();
        this.menu.style.position = "absolute";
        this.menu.style.zIndex = 100;
        this.menu.style.top = (offsetTop+element.offsetHeight-1)+"px";
        // Bad browser detection - yes, only choice - yes.
        if(MyBB.browser == "opera" || MyBB.browser == "safari")
        {
            this.menu.style.top = (parseInt(this.menu.style.top)-2)+"px";
        }
        this.menu.style.left = offsetLeft+"px";
        this.menu.style.visibility = 'hidden';
        this.menu.style.display = 'block';
        if(this.menu.style.width)
        {
            menuWidth = parseInt(this.menu.style.width);
        }
        else
        {
            menuWidth = this.menu.offsetWidth;
        }
        pageSize = DomLib.getPageSize();
        if(offsetLeftReal+menuWidth >= pageSize[0])
        {
            this.menu.style.left = (offsetLeft-menuWidth+element.offsetWidth)+"px";
        }
        this.menu.style.display = 'block';    
        this.menu.style.visibility = 'visible';

        document.currentMenu = element.id;
        Event.observe(document, 'click', this.closeMenu.bindAsEventListener(this));
    },
    
    closeMenu: function()
    {
        if(!document.currentMenu)
        {
            return;
        }
        var menu = document.currentMenu;
        menu = $(menu+"_popup");
        menu.style.display = "none";
        document.currentMenu = "";
        document.onclick = function() { };
    }
};

Jakieś pomysły?

Czy w tym div'ie okienka nie powinna być taka linijka?
<input type="hidden" name="action" value="do_login">
Tylko, że jest value do_login :/
Spróbuj do głównego div'a dodać: class="btn_close"

Nie wiem jak to w rezulatacie wygląda. ;]