我正在使用自定义 jquery-rails 支持运行 Rails 3.2、jquery 1.7 的旧站点(gemfile 说它是 0.2.6 - 但是公共文件夹中有一个自定义的,所以它可能已经更新)
我有一个带有确认的删除链接(data-method=delete)(data-confirm="Are you sure you want to delete this?")。但是,即使我在确认框上单击取消,该项目也会被删除。我猜这只是最近才开始发生的。任何想法为什么这已经开始发生以及如何解决它?
我正在使用自定义 jquery-rails 支持运行 Rails 3.2、jquery 1.7 的旧站点(gemfile 说它是 0.2.6 - 但是公共文件夹中有一个自定义的,所以它可能已经更新)
我有一个带有确认的删除链接(data-method=delete)(data-confirm="Are you sure you want to delete this?")。但是,即使我在确认框上单击取消,该项目也会被删除。我猜这只是最近才开始发生的。任何想法为什么这已经开始发生以及如何解决它?
所以我设法通过破解 jquery.rails.js 来解决这个问题:
/**
* confirmation handler
*/
$('a[data-confirm],input[data-confirm]').live('click', function (event) {
var el = $(this);
if (el.triggerAndReturn('confirm')) {
if (!confirm(el.attr('data-confirm'))) {
event.preventDefault();
$(event.currentTarget).data('failed-confirm', true);
return false;
}
...
这样,如果用户单击取消,它会在我可以测试的链接上设置数据。然后,在数据方法处理程序的开头:
$('a[data-method]:not([data-remote])').live('click', function (e){
if($(e.currentTarget).data('failed-confirm')) {
$(e.currentTarget).data('failed-confirm', false);
return false;
}
...
这似乎有效,但我仍然对发生的变化很感兴趣......