Javascript 在rails中单击li元素时无法更改其类别
我目前已在application.html.erb中包含以下内容Javascript 在rails中单击li元素时无法更改其类别,javascript,jquery,ruby-on-rails,Javascript,Jquery,Ruby On Rails,我目前已在application.html.erb中包含以下内容 <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %> <%= javascript_include_tag 'customjsFile', 'data-turbolinks-track' => true %> 但是单击'li'元素时,它不会被重定向到'a'标记的'href' 我尝试将以下代
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'customjsFile', 'data-turbolinks-track' => true %>
但是单击'li'元素时,它不会被重定向到'a'标记的'href'
我尝试将以下代码添加到customjsFile.js
$(document).on("click", "a", function(){
window.location.href = $(this).attr('href');
});
但随后我被重定向到单击的“a”元素的“href”,但我的活动类没有更改为单击的“li”,而是保持不变您应该收听
页面:更改事件,因为您正在使用TurboLink:
$(document).on('page:change', function () {
$('.nav li a').click(function(e) {
...
执行此操作时:$('.nav li').removeClass('active')代码>,这意味着您选择了所有类名为nav
且包含
的元素,并从中删除了类名活动的
我想您需要的是仅从当前单击的元素中删除类名active
,然后使用$(this)
:
注意:不要忘记防止锚的默认行为。我认为你的li
元素除了active
之外应该有一个初始类名。请尝试阅读.toggleClass()
$(document).on("click", "a", function(){
window.location.href = $(this).attr('href');
});
$(document).on('page:change', function () {
$('.nav li a').click(function(e) {
...
$(document).ready(function () {
$('.nav li a').click(function(e) {
e.preventDefault();
var $parent = $(this).parent();
$parent.removeClass('active');
});