Mic*_*orn 12 unobtrusive-javascript view-helpers link-to link-to-remote ruby-on-rails-3.2
我想调用一个javascript函数,该函数将以用户对确认框的响应为条件.
例如,我有以下锚点:
<%= link_to 'Sign Out', destroy_session_path, confirm: 'Are you sure that you would like to sign out?', method: :delete %>
Run Code Online (Sandbox Code Playgroud)
我应该放弃不引人注目的javascript并将我自己的jQuery回调绑定到我的锚点吗?
或者是否有一些神奇的方法将回调函数传递给Rails url帮助器?我没有在文档中看到任何关于回调的讨论.
Mic*_*orn 24
通过关注link_to源代码,我看到:confirm修饰符被传递给convert_options_to_data_attributes方法,该方法指向与Rails捆绑在一起的ujs脚本(通过jQuery进行的不显眼的javascript).在这里,我们发现最终用户的响应被传递给confirm:complete使用data-confirmhtml中的属性调用的事件.
所以似乎答案是"不,你不能通过url helper传递回调".但你可以在你的回调中app/javascript收听这个事件.这似乎是实现我的目标最不显眼的方式,考虑到我仍然让rails处理事件预防和传播.我等待所有这一切发生,然后调用我的功能.
$(document).on('confirm:complete', function (e, answer) {
if (answer) {
// user confirmed!
myCallbackFunction();
} else {
// user canceled!
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4135 次 |
| 最近记录: |