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>
4

2 回答 2

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事件绑定到 element #other,但仅在由其中具有类“popLink”的元素引起时才执行。还有其他几种方法可以定位<a>您想要的,因此这取决于您提供的代码是示例还是真实的。

于 2012-10-19T14:17:35.737 回答
0

尝试这个 :)

$('.popLink').click(function(e) {
  e.preventDefault();
  openPopUp();
});
于 2012-10-19T14:20:40.357 回答