首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >阻止链接,确认后转到位置jquery

阻止链接,确认后转到位置jquery
EN

Stack Overflow用户
提问于 2011-07-26 04:30:49
回答 9查看 37.4K关注 0票数 27

我有这样的链接。

代码语言:javascript
复制
<a href="delete.php?id=1" class="delete">Delete</a>

如果用户点击它的话。一个确认应该弹出,然后只有当用户点击是,它应该转到实际的网址。

我知道这可以防止默认行为

代码语言:javascript
复制
    function show_confirm()
    {
    var r=confirm("Are you sure you want to delete?");
    if (r==true)   {  **//what to do here?!!** }

    }    


    $('.delete').click(function(event) {
    event.preventDefault();
    show_confirm()
    });

但是,在确认之后,我如何继续访问该链接或向该链接发送ajax post?

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2011-07-26 04:33:49

您可以在单击中完成所有这些操作:

代码语言:javascript
复制
$('.delete').click(function(event) {
    event.preventDefault();
    var r=confirm("Are you sure you want to delete?");
    if (r==true)   {  
       window.location = $(this).attr('href');
    }

});

或者您可以通过将单击的元素传递给函数来完成此操作:

代码语言:javascript
复制
function show_confirm(obj){
    var r=confirm("Are you sure you want to delete?");
    if (r==true)  
       window.location = obj.attr('href');
}    
$('.delete').click(function(event) {
    event.preventDefault();
    show_confirm($(this));

});
票数 44
EN

Stack Overflow用户

发布于 2014-12-11 22:06:34

我花了一段时间才弄明白,所以我想我应该发布我的解决方案。

代码语言:javascript
复制
$('.delete').click(function(e){
    if(confirm('Are you sure?')){
        // The user pressed OK
        // Do nothing, the link will continue to be opened normally
    } else {
        // The user pressed Cancel, so prevent the link from opening
        e.preventDefault();
    }
}

我在想用错误的方式确认。确认将阻止站点自动打开,并等待用户的输入。所以基本上,你需要把你的preventDefault移到else。

因此,只有当他们单击Cancel时,您才能阻止链接打开。这也允许链接正常工作,例如,如果它有一个target="_blank“指令。

票数 3
EN

Stack Overflow用户

发布于 2011-07-26 04:34:48

代码语言:javascript
复制
function show_confirm(url){
    var r=confirm("Are you sure you want to delete?");
    if (r==true){
        location.top.href = url;
    }
}    


$('.delete').click(function(event) {
    event.preventDefault();
    show_confirm($(this).attr('href'));
});

如果你想使用ajax,你可以用$.get(url);代替location.top.href = url;

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6821968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档