我正在使用 Rails jquery ujs在我的应用程序中处理 ajax。此外,我正在使用confirm
销毁任何记录的选项。作为我目前的设置,我在点击data-remote=true
链接时连接了一个加载覆盖屏幕。
我只想知道:当用户单击cancel
确认框时,有没有办法可以挂钩回调事件,并且可以关闭加载程序覆盖。
我正在使用 Rails jquery ujs在我的应用程序中处理 ajax。此外,我正在使用confirm
销毁任何记录的选项。作为我目前的设置,我在点击data-remote=true
链接时连接了一个加载覆盖屏幕。
我只想知道:当用户单击cancel
确认框时,有没有办法可以挂钩回调事件,并且可以关闭加载程序覆盖。
是的你可以。传入响应对象。在咖啡脚本中。
$('selector').on 'confirm:complete', (e, response) ->
if response
# User confirmed
else
# User cancelled.
在 Javascript 中:
$('selector').on('confirm:complete', function(e, response) {
if(response) {
// User confirmed
}
else {
// User cancelled.
}
});
对于那些在这个问题上磕磕绊绊并使用 Rails >= 5.1 的人,请注意回调参数已捆绑到event.detail
一个数组中。第一个回调参数是event.detail[0]
等等。
要更新 Mohamad 的答案,以下是如何检查 Rails >= 5.1 中的确认值。
$('selector').on('confirm:complete', function(e) {
if (e.detail[0]) {
// User confirmed
}
else {
// User cancelled.
}
});
Rails 5.1 引入了 rails-ujs 并删除了 jQuery 作为依赖项。[...] 与带有 jQuery 的版本不同,所有自定义事件都只返回一个参数:event。在此参数中,有一个附加属性详细信息,其中包含一组额外参数。