2012-11-16 87 views
0

我需要幫助關閉彈出選項卡。覆蓋div是z-indexed,因此它不會隱藏關閉div。這裏是我的代碼:無法關閉彈出js框

<div id='mail'>     
    <div id="popup-overlay"></div> 
    <div class="close-popup""> 
    <a>X</a> 
    </div> 
</div> 

<script> 
    var mail = $('#mail'); 
    var overlay = $('#popup-overlay.' + pageID); 
    var mailClose = $('#mail.' + pageID + ' .close-popup'); 

    mailClose.on('click touchstart', function(event){ 
    mail.removeAttr('style'); 
    mail.css('display', 'none'); 
    overlay.css('display', 'none'); 
    }); 

    mailClose.bind('mouseover', function(event){ 
    mailClose.css('cursor', 'pointer'); 
    }); 

    mailClose.on('blur', function(event){ 
     this.blur(); 
    }); 
    } 
</script> 
+1

是否有任何其他代碼在您的代碼段中看不到,例如,此代碼段無法運行,因爲在最後一個腳本標記之前存在錯誤的關閉大括號,並且未定義變量pageID。 – kieran

+0

@ kieran同意...更不用說在最後多餘的.blur調用:/ – VIDesignz

回答

0

好了,所以有一些事情你錯了給我們的片段的來源,但是這可能只是因爲你複製粘貼你的總代碼的分段。這些問題是:在close-popup類定義意外「字;可變pageid是不確定的;最後是在腳本的末尾一個額外的大括號

想必這些都不是真正的問題

我相信你的問題源於你用於mailClose元素的選擇器,具體來說,mailClose元素的選擇器不正確,因爲它有不必要的#mail元素,我不確定pageID變量實際上是什麼,但由於它沒有出現在你給我們的HTML中,爲了讓選擇器正常工作,它也需要被刪除。一旦從第一段刪除了這些微不足道的錯誤,以及錯誤的CSS選擇器元素,我相信我的功能能夠按預期工作,如this jsfiddle中所示。據推測,pageID實際上是一個重要的值,應該適當地添加到選擇器中。

如果您想另外看看更全面的示例,請隨時編輯源代碼並評論此答案。希望這會有所幫助,

+0

Kieran,謝謝你的小提琴。這有很大幫助。是的代碼被剪掉了,這令人困惑。 – Leetechie