某网站实现了一个第三方插件,提示用户在删除前进行确认。
confirmDelete: function (event) {
var go_ahead = confirm("Are you sure you want to delete this draft? This action cannot be undone.");
if (go_ahead) {
return;
} else {
event.preventDefault();
}
}
在我自己的js文件中,我想知道用户点击的是“取消”还是“确定”。
我可以判断用户何时收到确认窗口提示(通过他们单击删除按钮),但我无法确定用户是单击了“取消”还是“确定”。
我想将这段代码分开,因为插件会定期更新。
$('button[name="delete"]').on('click', function(event) {
console.log('delete btn clicked');
console.log(event);
});
我在我的控制台中查看了事件的内容,但没有任何问题。
最佳答案
将调用 confirm
的值返回给您的 onClick
处理程序,例如,
var SomeObject = {
confirmDelete: function () {
return confirm("Are you sure you want to delete this draft? This action cannot be undone.");
}
};
然后:
$('button[name="delete"]').on('click', function(event) {
var confirmed = SomeObject.confirmDelete();
if (!confirmed) {
event.preventDefault();
return;
}
// etc...
});
我从确认函数中删除了事件处理。这使它接近实际事件,并且看起来更规范的 jQuery。它提高了可读性并简化了测试。
关于Javascript 确认,捕获用户选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36630887/