Javascript Rails 4删除受模板JS影响的链接
我正在使用rails 4和Desive。所有Desive功能均按预期工作,包括以下代码给出的注销链接:Javascript Rails 4删除受模板JS影响的链接,javascript,jquery,ruby-on-rails,ruby-on-rails-4,ujs,Javascript,Jquery,Ruby On Rails,Ruby On Rails 4,Ujs,我正在使用rails 4和Desive。所有Desive功能均按预期工作,包括以下代码给出的注销链接: = link_to "<span class= 'fa fa-power-off'></span> Sign Out".html_safe, destroy_user_session_path, method: :delete 当我添加模板js文件的其余部分时,它会再次停止工作,因此我假设在其他文件中也会执行类似的操作。我没有删除JS的片段,而是试图了解发生了什么。我
= link_to "<span class= 'fa fa-power-off'></span> Sign Out".html_safe, destroy_user_session_path, method: :delete
当我添加模板js文件的其余部分时,它会再次停止工作,因此我假设在其他文件中也会执行类似的操作。我没有删除JS的片段,而是试图了解发生了什么。我知道Rails使用它的ujs来触发一个删除请求,但是为什么上面的JS代码会阻碍Rails做它应该做的事情呢
另外,我对JS不太流利,因此对于非常熟悉JS的人来说,这可能很简单。我认为问题在于e.stopPropagation;js代码中的行。这些可能不是真正需要的。但是,它可能取决于下拉菜单中的其他链接类型。试着去掉这两条线,检查是否一切正常
$('.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');
});