Rails 4删除受模板JS影响的链接
Posted
技术标签:
【中文标题】Rails 4删除受模板JS影响的链接【英文标题】:Rails 4 Delete link influenced by Template JS 【发布时间】:2016-02-11 20:23:01 【问题描述】:我正在使用带有设计的 rails 4。所有设计功能都按预期工作,包括以下代码给出的“退出”链接:
= link_to "<span class= 'fa fa-power-off'></span> Sign Out".html_safe, destroy_user_session_path, method: :delete
我已经安装了一个模板并遇到了一些问题。当我将“退出”链接放在导航栏的下拉列表中时,模板文件中的 JS 似乎造成了一些困难。 如果我将链接放在我的正常正文内容中,它确实有效。这使我找到了模板源代码,试图找出为什么这个链接在放置在模板导航栏下拉列表中时发送的是 GET 请求而不是 DELETE 请求。删除以下代码后,我的链接开始工作:
$('.dropdown-menu').on('click', function(e)
e.stopPropagation();
var Target = $(e.target);
var TargetGroup = Target.parents('.btn-group');
var SiblingGroup = Target.parents('.dropdown-menu').find('.btn-group');
// closes all open multiselect menus. Creates Toggle like functionality
if (Target.hasClass('multiselect') || Target.parent().hasClass('multiselect'))
SiblingGroup.removeClass('open');
TargetGroup.addClass('open');
else SiblingGroup.removeClass('open');
e.stopPropagation();
var Target = $(e.target);
var TargetGroup = Target.parents('.btn-group');
var SiblingGroup = Target.parents('.dropdown-menu').find('.btn-group');
);
当我添加模板 js 文件的其余部分时,它再次停止工作,因此我假设在其他文件之一中完成了类似的操作。我没有删除 JS 的片段,而是试图了解正在发生的事情。我知道 Rails 使用它的 ujs 来触发 DELETE 请求,但是为什么上面的 JS 代码会阻碍 Rails 做它应该做的事情?
PS。我不精通 JS,所以对于非常了解 JS 的人来说,这可能看起来很简单。
【问题讨论】:
【参考方案1】:我认为问题在于 js 代码中的 e.stopPropagation();
行。这些可能并不是真正需要的。但是,它可能取决于下拉菜单中的其他链接类型。只需尝试删除这两行并检查一切是否正常。
【讨论】:
以上是关于Rails 4删除受模板JS影响的链接的主要内容,如果未能解决你的问题,请参考以下文章