在服务器向数据库发送真/假数据时,我需要关闭远程链接。然后,我将重新启用ajax:success上的链接。
我不能在rails远程链接上使用e.preventDefault()
我想做这样的事:
$('body').on('click', '.toggle_link', function(){
//disable remote link
})
$('body').on('ajax:success', '.toggle_link', function(){
//enable remote link
})是否有最佳做法来完成这一任务?
发布于 2014-06-12 04:18:11
这应该会禁用远程链接。
$('#remote_link').removeAttr('data-remote').removeAttr('href')要重新启用它,可以将目标url存储在某个data属性(data-target或smth)中,并将href带回ajax:success。
发布于 2016-03-07 22:42:27
您还可以连接到ujs中的ajax:beforeSend事件。
$(document).on('ajax:beforeSend', 'a[data-remote=true]', function(event, xhr, status, error) {
// stash the link
// remove the href
});当数据远程链接有一个“禁用”的css类时,我使用了这些变量来防止数据远程链接运行。
$(document).on('ajax:beforeSend', 'a.disabled[data-remote=true]', function(event, xhr, status, error) {
event.preventDefault();
event.stopImmediatePropagation();
return false;
});发布于 2014-06-09 23:46:09
最终为我工作的是使用user2675613的部分答案,然后删除data-remote="true"和data-method="put"属性。
//to disable
var url_link = $(this).attr('href');
$(this).attr('data-href', url_link);
$(this).attr('href', "#");
$(this).removeAttr('data-remote');
$(this).removeAttr('data-method');
//to enable
var url_link = $(this).attr('data-href');
$(this).attr("href", url_link);
$(this).attr("data-remote", "true");
$(this).attr("data-method", "put");这是用于更新操作的,因此根据操作的不同,可以存储数据方法。
https://stackoverflow.com/questions/24102803
复制相似问题