问问题
3599 次
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 回答