Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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
如何从打开对话框Jquery UI的链接中检索href值_Jquery_Jquery Ui_Javascript - Fatal编程技术网

如何从打开对话框Jquery UI的链接中检索href值

如何从打开对话框Jquery UI的链接中检索href值,jquery,jquery-ui,javascript,Jquery,Jquery Ui,Javascript,我刚刚开始学习Jquery,对编写javascript还不熟悉(我太老了,写不出来了,感觉不对) 场景:我有一个超链接,可以打开一个对话框并设置一个cookie。对话框会询问类似“您想访问此页面吗?确定吗?”的问题,上面有“是/否”按钮 如果用户单击“是”,我希望脚本检索最初单击的链接并转到该页面。我是通过检索cookie的值来实现的。虽然这是可行的,但我确信我可以用一个变量来实现,但我不知道如何实现,因为对话框是在一个单独的函数中 所以我的问题是:我可以使用设置cookie的变量并将其绑定到对

我刚刚开始学习Jquery,对编写javascript还不熟悉(我太老了,写不出来了,感觉不对)

场景:我有一个超链接,可以打开一个对话框并设置一个cookie。对话框会询问类似“您想访问此页面吗?确定吗?”的问题,上面有“是/否”按钮

如果用户单击“是”,我希望脚本检索最初单击的链接并转到该页面。我是通过检索cookie的值来实现的。虽然这是可行的,但我确信我可以用一个变量来实现,但我不知道如何实现,因为对话框是在一个单独的函数中

所以我的问题是:我可以使用设置cookie的变量并将其绑定到对话框中的yes按钮吗?语法是什么样的

提前谢谢

毛边

代码如下

<script type="text/javascript" language="javascript">
$(document).ready(function() {
$("a").click(function () {
      var cookieset = $(this).attr("href");
      $.cookie("redirectcookie", cookieset, { path: '', expires: 7 });
      $('#dialog').dialog('open');
                    $(".ui-dialog-titlebar-close").hide();
                    return false;           

});

$('#dialog').dialog({
                    autoOpen: false,
                    width: 600,
                    buttons: {
                        "Yes": function() { 
                window.location = 'http://www.mysite.com'+ $.cookie("redirectcookie")       
                    }, 
                        "Cancel": function() { 

                        } 
                    }

                });
    });
    </script>

$(文档).ready(函数(){
$(“a”)。单击(函数(){
var cookieset=$(this.attr(“href”);
$.cookie(“重定向cookie”,cookieset,{path:'',expires:7});
$('dialog')。dialog('open');
$(“.ui对话框标题栏关闭”).hide();
返回false;
});
$('#dialog')。dialog({
自动打开:错误,
宽度:600,
按钮:{
“是”:函数(){
window.location=http://www.mysite.com“+$.cookie”(“重定向cookie”)
}, 
“取消”:函数(){
} 
}
});
});
您可以使用来存储数据,而不是使用cookie

您可以使用以下选项,在单击链接时添加按钮,而不是在创建对话框时添加按钮:

$("a").click(function () {

    var $link = $(this);

    $('#dialog').dialog('option', 'buttons', {
        "Yes": function() { 
            window.location = $link.attr("href");          
        }, 
        "Cancel": function() { 
            $('#dialog').dialog( 'close' );
        } 
    });

    $('#dialog').dialog('open');
    $(".ui-dialog-titlebar-close").hide();
    return false;
});


$('#dialog').dialog({
    autoOpen: false,
    width: 600
});
注意,我将“$(this);”保存在一个名为“$link”的变量中,因为“this”还有另一个含义,在回调函数中,它指向dialog对象

编辑:
发生的情况如下:当文档准备就绪时,“a”被选中,并且单击函数被绑定到它。函数本身不会执行,但会在用户单击链接时执行。第二,仍然在就绪事件中,选择了#dialog并创建了一个新的对话框。唯一的参数是包含两个属性“autoOpen”和“width”的对象。就这样,准备好了。
当用户现在单击链接时,将执行给定的函数。它执行以下操作:

  • 保存对“this”的引用,单击的链接是什么。注意,我保存了“$(this)”而不是“this”,因此将变量命名为“$link”而不是“link”。这是一种jQuery约定
  • 在对话框上设置“按钮”选项。参数是一个对象,它包含属性“Yes”和“Cancel”,这两个属性的值都是一个函数,单击它们时将调用它们。第一个将位置更改为链接的href,第二个关闭弹出窗口
  • “对话框(‘打开’)”打开对话框
  • “.ui对话框标题栏关闭”被隐藏
  • 单击函数返回false,因此不会执行links href

  • 这很有效,让我的所作所为蒙羞。所以用白痴的话说,当用户点击超链接时,变量“link”被创建,这就是超链接,按钮也被创建。yes函数包含windows位置,该位置是链接变量属性“href”。我还添加了我制作的饼干,效果不错。非常感谢,我有很多东西要学@莫里斯:是的,你明白了。我还更新了我的答案,并一步一步地描述了发生的事情