javascript - 返回确认仍在执行

标签 javascript jquery

我使用以下内容作为删除按钮,尽管我收到了确认消息,但如果我单击“取消”,它仍然会继续执行:

<a onclick="return confirm('are you sure?')" class="btn btn-default btn-sm deleteList" href="#" list_id="1467" title="Delete your list: listName">Delete</a>

有什么明显的吗?

更新:

它附加到 jquery click 函数,因此如果取消停止链接,我如何防止点击处理程序触发?

更新2

也在点击处理程序开始时尝试过,但同样的问题:

$('.deleteList').on('click', function(e) {
        confirm('are you sure?');
        var list_id = $(this).attr("list_id");
        $.ajax({
            context: this,
            type: "POST",
            url: '/ajax/actions/deleteList.php?listId=' + list_id,
            success: function (data) {
                    var d = $.now();
                    window.location.href = "/pages/dashboard?listDelete=" + d + "#mylists";
            }
        }); // End .ajax
        e.preventDefault();
    });

最佳答案

这是万无一失的答案:

$('.deleteList').on('click', function( event ) {
    event.preventDefault()
    event.stopImmediatePropagation(); //de Added by @crush
    return confirm("are you sure?")
})

然后删除onclick="..."

截至更新的问题,整个问题是不同的。现在的问题是 confirm() 的无效使用以及 $.ajax() 可能出现的异步问题。

关于javascript - 返回确认仍在执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21092616/

相关文章:

javascript - jQuery 在加载前捕获验证码图像或在加载后获取图像文件内容

javascript - 卸载前的窗口显示两个对话框

javascript - 如何处理共享同一集合的多个 Marionette CollectionView

javascript - 鼠标弹起与点击

javascript - Angular 拖放克隆图像无法与助手一起使用 : 'clone' & placeholder: 'keep'

javascript - 每次加载文件时都会调用 this.init = function() 吗?

javascript - 满足 promise 时运行 frisby 测试

javascript - 具有异步加载的 Angular bootstrap typeahead 落后一个字符

jquery - Bootstrap 模态加载对齐不当和截断页面

jquery - 不要让 IE 选择并复制使用 jQuery .hide() 隐藏的表行