我尝试使用sweet alert
创建确认。当用户单击按钮时,会打开swal
(警报)窗口,他们可以确认或取消。如果点击confirm
,则JQuery
应点击该内容。
但它没有做任何事情。你知道问题出在哪里吗?
我尝试了多种选择 - unbind.click()
等。
$('.button-apply').on('click', function (e) {
var t = $(this);
e.preventDefault();
swal({
title: "Are you sure?",
text: "Do you want to apply for this job?",
type: "info",
showCancelButton: true,
confirmButtonColor: "#b3ff99",
confirmButtonText: "Confirm",
//closeOnConfirm: false,
//showLoaderOnConfirm: true,
html: false
}, function (isConfirm) {
if (!isConfirm) {
return;
} else {
t.click();
}
})
})
修改
已更改} else {
t.click();
}
到
} else {
t.unbind('click');
t.trigger('click');
}
成功取消绑定,但t.trigger('click')
未执行。
解决:
由于它是<a href....>
,因此我无法t.submit()
取消绑定,因此我已将t.click()
替换为window.location.href = t.attr('href');
它正常工作。
答案 0 :(得分:0)
您已指定e.preventDefault();
,以防止button-apply
上的事件被触发。删除此行,然后点击事件将返回。
作为用户按下取消时的附加注释,您再次触发相同的事件,这将导致无限循环。如果用户执行此操作,您应该删除t.click();
并放置要调用的逻辑。
举个例子:
$('.button-apply').on('click', function (e) {
var t = $(this);
swal({
title: "Are you sure?",
text: "Do you want to apply for this job?",
type: "info",
showCancelButton: true,
confirmButtonColor: "#b3ff99",
confirmButtonText: "Confirm",
//closeOnConfirm: false,
//showLoaderOnConfirm: true,
html: false
}, function (isConfirm) {
if (!isConfirm) {
alert('You have not applied for the job!');
} else {
alert('You have applied for the job');
// Submit form $("#yourForm").submit();
// or an AJAX call.
}
})
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.min.js"></script>
<button class="button-apply">Click me</button>
&#13;