2013-12-16 71 views
0

我在修改這個example我發現了關於創建模態的問題。用jquery打開對話框後自動關閉

我想用javascript來顯示對話框。 我有它的代碼打開對話框,但它在1或2秒後關閉。檢查控制檯我沒有得到任何錯誤。

這是html代碼。 我有一個jsbin,你可以觀察到自動關閉的對話框。 http://jsbin.com/UDIGeveg/1/edit

<body> 
    <a id="openModal" href="">Open Modal</a> 
    <div id="openM" class="modalDialog"> 
     <div> 
      <a href="#close" title="Close" class="close">X</a> 
      <h2>Modal Box</h2> 
      <p>xxxxxxxxxxxxxxxxxxxxxx</p> 
     </div> 
    </div> 
</body> 

這是我的javascript

$('#' +"openModal").click(function(){ 
    document.location.href='#'+"openM"; 
}); 

回答

3

$('#' + "openModal")是一個錨標記,它的默認操作爲您直接到另一個鏈接。 所以,你需要防止其默認動作被觸發,通過使用e.preventDefault()

$('#' +"openModal").click(function(e){ 
    e.preventDefault(); 
    document.location.href='#'+"openM"; 
}); 
+0

感謝。我會問你e.preventDefault()做了什麼。 – Diego

+1

'e.preventDefault();'的替代方法是將錨href屬性設置爲'href ='javascript:;'',以便使鏈接在點擊時不做任何事情。 –

+0

@GuillermoGutiérrez如果你想擁有一個完全免費的對話框,那麼這將是一條路。 – rossipedia

0

您可以使用庫來檢測網址變更爲您服務!

<a id="openModal" href="#openM">Open Modal</a> 

,然後註釋掉你的JavaScript:

/* 
$('#' +"openModal").click(function(){ 
    document.location.href='#'+"openM"; 
}); 
*/ 
+0

我知道。但計劃用JavaScript來做更多的事情。 – Diego