我正在使用Rails jquery ujs来处理我的应用中的ajax。此外,我使用confirm
选项来销毁任何记录。
作为我当前的设置,我点击了data-remote=true
链接即连接加载覆盖屏幕。
我想知道的是:当用户在确认框中单击cancel
并且我可以关闭加载器覆盖时,我是否可以挂钩回调事件。
答案 0 :(得分:6)
是的,你可以。传入响应对象。在CoffeeScript中。
$('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.
}
});
答案 1 :(得分:2)
对于那些迷惑于此问题并使用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。此参数中有一个附加的属性详细信息,其中包含一组附加参数。