jquery确认对话框什么都不做

时间:2012-10-19 16:08:09

标签: jquery html

我正在尝试使用jquery来显示确认对话框但是没有任何反应当我点击这里的链接是我的代码时,如果我发出警报我可以在准备好的功能中看到警报而不是点击:

$(document).ready(function() {
    $("#mydialog").dialog({
        autoOpen: false,
        modal: true
    });
});
$(".myconfirmLink").click(function(e) {
    e.preventDefault();
    var targetUrl = $(this).attr("href");
    $("#mydialog").dialog({
        buttons: {
            "Yes": function() {
                $(this).dialog("close"), window.location.href = targetUrl;
            },
            "No": function() {
                $(this).dialog("close");
            }
        }
    });
    $("#mydialog").dialog("open");
});​

并在链接上我这样称呼它:

<div class="topToolbar">
                    <span> <a href="/Logout.aspx" class="myconfirmLink">Log Out</a></span>
                    <div id="mydialog" title="Confirmation Required">
                <p> Are you sure you want to request a new pack?</p>
            </div>

3 个答案:

答案 0 :(得分:2)

将您的点击装订移动到document.ready功能

$(document).ready(function() {
    $("#mydialog").dialog({
        autoOpen: false,
        modal: true
    });
    $(".myconfirmLink").click(function(e) {
        e.preventDefault();
        var targetUrl = $(this).attr("href");
        $("#mydialog").dialog({
            buttons: {
                "Yes": function() {
                    $(this).dialog("close"), window.location.href = targetUrl;
                },
                "No": function() {
                    $(this).dialog("close");
                }
            }
        });

        $("#mydialog").dialog("open");
    });
});​

很可能它会尝试将click事件绑定到dom之前的元素。它在这里工作正常

http://jsfiddle.net/FdBTW/

答案 1 :(得分:1)

看起来您正在设置ready函数之外的点击处理程序。 jQuery准备就绪之前,$(".myconfirmLink").click(function (e) { ... });代码正在运行

答案 2 :(得分:1)

他们的代码没有问题。只需将您的确认链接点击处理程序代码移动到document.ready函数中即可使其正常工作。