编辑这是最近升级的Rails 4应用。
我正在尝试重构此ajax事件侦听器以使用.on()而不是.live()。前两个代码块已经重构,最后一个代码块就是我被卡住的地方。从我所看到的开始,它是错误的,但仍然起作用。
我如何重构这个以使它成为特定ajax:success事件的全局监听器?
这是提交表单并触发ajax事件的代码。
修改忘记提及该表单是远程的。
jQuery(document).on('click', '.form_submitter', function () {
if ((forms = $(this).parents('form')).size != 0) {
var form = forms[0];
if (jQuery(form).attr('data-remote')) {
jQuery(form).trigger('submit');
} else {
forms[0].submit();
}
}
return false;
});
这是在提交特定表单成功后创建自定义事件的代码。
jQuery(document).on('ajax:success','form.my_form', function (event, data) {
// Fire a custom event
jQuery(this).trigger('custom_event', data);
});
这是监听自定义事件并执行操作的代码块。它没有被重构。
jQuery('*').live('custom_event', function(event, data) {
// Do stuff
)};
我的理解是.on()在尾随的parens中需要一个选择器,但'*'
不是合适的选择器。有办法解决这个问题吗?