3
4

5 回答 5

7

我没有使用过bootbox,但假设x函数中的值是弹出窗口的布尔结果,这应该可以工作:

<a href="/jobs/emp/del/?id={{ job.pk }}" class="btn deleteJob">
    <i class="icon-trash"></i>
</a>
$('.deleteJob').click(function(e) {
    e.preventDefault();
    var $link = $(this);
    bootbox.confirm("Are you Sure want to delete!", function (confirmation) {
        confirmation && document.location.assign($link.attr('href'));
    });        
});

注意,你提到了一个for循环——那里的 jQuery 代码不需要在一个循环中。该代码将适用于.deleteJob锚元素的所有实例。

于 2013-06-27T10:28:48.587 回答
3

您可以使用preventDefault()停止重定向;

$('.deleteJob').click(function(e) {
    e.preventDefault();
    if(confirm("Are you Sure want to delete!")) {
        var link= $(this).find( $spans ).text();            
        document.location.href='/'+link+'/';}
    }
});

我不确定bootbox所以这是jQuery唯一的解决方案

于 2013-06-27T10:27:36.107 回答
0
<script>

  $('.deleteJob')each(function(){
   var href = $(this).attr("href");
   $(this).click(function(){
   if(confirm("Are you sure you want to delete this job ?"))
   {
       document.location.href='/'+href+'/';}
   }

   });

  });
</script>

如果您不介意使用浏览器中的正常确认窗口,这可能会起作用。

于 2013-06-27T10:31:35.933 回答
0

如果您在循环之外使用它,它是否有效?这个问题看起来像你遇到了 javascript 闭包问题,这基本上意味着在循环中分配的函数将在下次执行循环时被覆盖,因此函数 onclick 将仅绑定在最后一个解析到它的 DOM 上环形。为了解决这个问题,将 onclick 分配移动到在循环的每次迭代中调用的外部函数(您可能需要解析。

这也是有效的 jquery 标识符吗?:$spans

在此处阅读有关关闭的信息。

于 2013-06-27T10:35:13.610 回答
0

如果确认功能的结果为假,您必须阻止默认操作

$(document).ready(function () {
    $(".deleteJob").on("click", function (e) {
        if (!confirm("Are you Sure want to delete!")) {
            e.preventDefault();
        }
    });
});
于 2016-06-16T06:01:56.253 回答