我正在使用 JQuery 1.4.4 和 jQuery UJS rails.js ( https://github.com/rails/jquery-ujs )制作 Ruby On Rails 3.0.3 应用程序
我有脚手架生成的模型/视图/控制器 - 文档,我在 app/views/documents/index.html.haml 文件中删除了链接:
link_to "delete", document, :confirm => "Are you sure?", :method => :delete
这会生成这个 HTML:
<a href="/documents/1" data-confirm="Are you sure?" data-method="delete" rel="nofollow">Destroy</a>
这看起来很不错。
当我单击此“销毁”链接时,我会看到浏览器确认(),当我单击取消时,我希望什么都不会发生。
但
删除功能发生并且文档被删除。
有没有人有同样的问题或者我做错了什么?
目前我已经挖掘了这么远:
我查看了jquery-ujs rails.js 并且有两个.live()事件附加到同一个锚点:
1) $('a[data-confirm],input[data-confirm]').live('click', function () {...}
2) $('a[data-method]:not([data-remote])').live('click', function (e){...}
首先 live() 执行return false; 据我了解,这应该会阻止所有执行链,但事实并非如此。第二个live()仍然执行,第二个live()是生成表单并提交销毁操作的地方。