Rails链接到忽略e.preventDefault();从jQuery调用,因为方法::get已设置
Rails link_to ignoring e.preventDefault(); from a jQuery call because method: :get is set
通过实验,我了解到以下代码:
<td><%= link_to 'Notify', '/w/'+w.id+'/notify', method: :get, :class => "btn btn-success notify-btn" %></td>
无论此jQuery:如何都会激发
$('.notify-btn').click(function(e){
e.preventDefault();
bootbox.confirm("Alert?", function(result){
if(result === true){
return true;
} else {
return false;
}
});
});
这是由于方法::get。我一个接一个地删除了链接的元素,并尝试了各种组合。如果方法::get在那里,它就会着火。
我可以用e.stopPropagation阻止它,但它根本不会跟随链接。即使我单击"确定",它也只是坐在页面上无所事事。
如果我去掉erb并使用像这样的直接HTML:
<a href="/w/53531e8a963e6503c60002b2/notify" class="btn btn-success notify-btn" data-method="get">Notify</a>
数据方法="get"在那里,结果相同。如果我删除数据方法,它会弹出警报并阻止跟踪链接,但即使我确认了,它也不会真正触发链接。
你知道我做错了什么吗?
$('.notify-btn').click(function(e){
e.preventDefault();
e.stopPropagation();
var link = $(this).attr('href')
bootbox.confirm("Alert?", function(result){
if(result){
window.location = link;
return true;
} else {
return false;
}
});
});
我不得不使用一些诡计,但上面的办法奏效了。
奇怪的是,它最终同时需要preventDefault和stopPropagation。我尝试了所有可能的组合。
我在试图控制是否应根据某些条件执行link_to请求时也遇到了同样的问题,最终执行了以下
- 使用get或post方法创建隐藏的链接按钮
- 创建可见链接按钮(_T)
- 如果条件为true,则单击可见链接按钮时,将触发隐藏链接按钮
- 如果条件为false,则当单击可见的link_to按钮时,只需返回false即可完成任务
例如假设类。链接到和。使用方法链接到
$('.link-to').click(function(){
if(condition){
$('.link-to-get-method').trigger('click');
return true;
}else{
return false;
}
});
相关文章:
- 如何在视图模型contet更新更新上调用Jquery函数
- 如何在 html 页面中调用 jquery
- 仅在小型设备上调用jQuery函数
- 未调用jquery异步函数
- 有没有一种方法可以用步骤递归调用jQuery animate()
- 调用JQuery弹出关闭按钮上的JS'X'
- 在条件内部调用JQuery函数
- ajax外部url加载完成后调用jquery函数
- 如何在几个jQuery对象上调用jQuery函数
- 在发布后调用jQuery Get
- 如何从ajax调用JQuery返回数据
- 从 document.ready 调用 jQuery 插件抛出 getPreventDefault 错误
- 从上下文中调用 JQuery 函数
- 每次调用 jQuery 函数时递增变量
- 使用 Ajax 在 html 加载后调用 jquery 插件
- 在单击按钮时调用 jquery 函数时出现问题
- 多次调用 Jquery 事件
- 从 PHP 获取当前页面 ID 后调用 jQuery 事件
- 从全局范围调用 jQuery 中的函数
- 在隐藏值上调用 jQuery .trigger('change') 会破坏与 KNOCKOUT 相关的可观察性