我正在使用带有 UJS 的 Rails。我想在提交之前绑定一些事件以禁用 ajax 链接,并在出现错误时重新启用它。我写了这个 jQuery 来处理这个过程:
$('.post').on('click', 'a[data-toggle="follow"]', function() {
var elem, href;
elem = $(this);
href = elem.attr('href');
return elem.bind('ajax:loading', elem.attr('href', '#')).bind('ajax:error', elem.attr('href', href));
});
当我故意在我的控制器中模拟一个异常时,我得到了这个 JS 错误:
Uncaught TypeError: Object [object Object] has no method 'apply'
知道为什么会这样吗?Ajax 本身运行良好。只有当出现服务器错误时才会发生这种情况。
li.subscription
- if signed_in? && current_user.subscribed?(post)
= link_to "Unfollow", [post, current_user.subscriptions.find_by_post_id(post)], method: :delete, remote: true, 'data-toggle' => 'follow'
- else
= link_to "Follow", post_subscriptions_path(post), method: :post, remote: true, 'data-toggle' => 'follow'