Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery对话框将事件绑定到按钮_Javascript_Jquery_Jquery Ui_Dialog - Fatal编程技术网

Javascript JQuery对话框将事件绑定到按钮

Javascript JQuery对话框将事件绑定到按钮,javascript,jquery,jquery-ui,dialog,Javascript,Jquery,Jquery Ui,Dialog,我在jQuery方面遇到了一些问题。我希望在用户单击某个链接删除某个内容时出现一个对话框,并提示他们确实要删除该内容。对话框看起来很好,但是当用户单击“是”按钮时,我看不到获取链接url的方法。我尝试使用event.relatedTarget属性获取标记的url,但它为空。有人知道怎么做吗 代码 <div id="dialog" title="Delete Run"> <p><span class="ui-icon ui-icon-alert" style="flo

我在jQuery方面遇到了一些问题。我希望在用户单击某个链接删除某个内容时出现一个对话框,并提示他们确实要删除该内容。对话框看起来很好,但是当用户单击“是”按钮时,我看不到获取链接url的方法。我尝试使用
event.relatedTarget
属性获取标记的url,但它为空。有人知道怎么做吗

代码

<div id="dialog" title="Delete Run">
<p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 0 0;"></span>Are you sure you want to delete that run?</p>
</div>
$(document).ready(function() {
    $('#dialog').dialog({
        autoOpen: false,
        width: 400,
        modal: true,
        draggable: false,
        resizable: false,
        buttons: {
            "Yes": function(event) {
                //Go to the url in $("a.delete")
            },
            "No": function() {
                $(this).dialog("close");
            }
        }
    });

    $("a.delete").click(function(){
        var url = $(this).attr("href");
        $('#dialog').dialog('open');
        return false;
    });
});

是否确实要删除该运行

$(文档).ready(函数(){ $('#dialog')。dialog({ 自动打开:错误, 宽度:400, 莫代尔:是的, 可拖动:错误, 可调整大小:false, 按钮:{ “是”:功能(事件){ //转到$中的url(“a.delete”) }, “否”:函数(){ $(此).dialog(“关闭”); } } }); $(“a.delete”)。单击(函数(){ var url=$(this.attr(“href”); $('dialog')。dialog('open'); 返回false; }); });

是否确实要删除该运行

$(文档).ready(函数(){ $('#dialog')。dialog({ 自动打开:错误, 宽度:400, 莫代尔:是的, 可拖动:错误, 可调整大小:false, 按钮:{ “是”:功能(事件){ var url=$(this.data('url'); window.location=url; }, “否”:函数(){ $(此).dialog(“关闭”); } } }); $(“a.delete”)。单击(函数(){ $('#dialog').data('url',$(this.attr(“href”)); $('dialog')。dialog('open'); 返回false; }); });
有点猜测,因为代码中没有元素A.delete?
使用jQuery的data()通常比全局变量更好。

您可以在文档开头声明url变量,以便在任何函数中访问该变量。所以首先做
var-url
after(document).ready,然后从delete的click函数中删除var声明,最后将窗口位置设置为该变量,如下所示:
window.location.href=url最终您会得到类似的结果:

$(document).ready(function() {
    var url;

    $('#dialog').dialog({
        autoOpen: false,
        width: 400,
        modal: true,
        draggable: false,
        resizable: false,
        buttons: {
            "Yes": function(event) {
                window.location.href = url;
            },
            "No": function() {
                $(this).dialog("close");
            }
        }
    });

    $("a.delete").click(function(){
        url = $(this).attr("href");
        $('#dialog').dialog('open');
        return false;
    });
});
我在这里用您的代码建立了一个示例:

$(document).ready(function() {
    var url;

    $('#dialog').dialog({
        autoOpen: false,
        width: 400,
        modal: true,
        draggable: false,
        resizable: false,
        buttons: {
            "Yes": function(event) {
                window.location.href = url;
            },
            "No": function() {
                $(this).dialog("close");
            }
        }
    });

    $("a.delete").click(function(){
        url = $(this).attr("href");
        $('#dialog').dialog('open');
        return false;
    });
});