2012-10-19 103 views
0

我使用Jquery UI在點擊時打開彈出窗口,但彈出窗口會立即關閉。我不明白爲什麼? 這裏是我的代碼:爲什麼我的彈出窗口立即關閉?

function openPopUp() { 
    // alert("Handler for .click() called."); 
     $("#dialog:ui-dialog").dialog("destroy"); 
     $("#select-method").dialog({ 
      modal : true, 
      height: 573, 
      width: 766 , 
      buttons : { 
       Exporter : function() { 
        //$(this).dialog("close"); 
        alert("Exporter"); 
        // close the dialog 
       }, 
       'Etat de surveillance' : function() { 
        //$(this).dialog("close"); 
        alert("Etat de surveillance"); 
        // close the dialog 
       }, 
       Annuler : function() { 
        //$(this).dialog("close"); 
        alert("Annuler"); 
        // close the dialog 
       } 
      } 
     }); 
    }; 

代碼的HTML是:

<div id="other" class="popLink">This is text 
     <a href="" class="popLink" onClick="openPopUp();"> 
     Click to open pop up 
     </a> 
</div> 

<div class="noDisplay"> 
     <div id="select-method" title="selection des méthodes et calcul des provisions">My pop upis opened 
      </div> 
</div> 
+2

最有可能的錨標記的默認行爲是導致頁面刷新和/或瀏覽某個地方,因爲它在同一個DOM存在其將關閉的jQuery對話框。嘗試防止點擊的默認行爲。 – jbabey

+0

我必須補充。我不擅長jQuery – Pracede

+1

嘗試使用'。 – skovalyov

回答

3

喜歡的人評論說,嘗試這樣的事情:

onclick="openPopUp();return false;" 

雖然這將是有意義的,因爲您已經使用jQuery,將事件與jQuery綁定,而不是內聯HTML。相反指定onclick屬性,嘗試這$(document).ready

$(".popLink").click(function (e) { 
    e.preventDefault(); 
    // Either call openPopUp or copy/paste the code from that function into here - depends on how you actually use openPopUp throughout your whole site 
}); 

但在同一時間,你有你的HTML奇怪的東西 - 用同一類「popLink」嵌套的div。這意味着如果你使用了上面的代碼,當你點擊內部代碼時,showPopUp將執行兩次(因爲傳播)。所以,我想我會在技術上使用這個綁定:

$("#other").on("click", ".popLink", function (e) { 
    e.preventDefault(); 
    // Other code 
}); 

這在技術上結合了click事件的目標元素#other,但只有當它具有類「popLink」內外因的元素被執行。還有其他幾種方法來定位您需要的<a>,所以取決於您提供的代碼是示例還是真實的。

+0

謝謝。返回false解決我的問題。 – Pracede

0

試試這個:)

$('.popLink').click(function(e) { 
    e.preventDefault(); 
    openPopUp(); 
}); 
相關問題