Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 类在页面加载或更改后从元素中消失_Jquery_Ruby On Rails_Turbolinks - Fatal编程技术网

Jquery 类在页面加载或更改后从元素中消失

Jquery 类在页面加载或更改后从元素中消失,jquery,ruby-on-rails,turbolinks,Jquery,Ruby On Rails,Turbolinks,我想在单击时向li元素添加一个类,以指示它是当前元素 这是我使用的侦听器 $(document).on("click",".sidebar ul li a",function(){ if (!$(this).parent().hasClass("current")) { $("li.current").removeClass("current"); $(this).parent().addClass("current"); } }); 但是后来我意识到类被添加了,

我想在单击时向
li
元素添加一个类,以指示它是当前元素

这是我使用的侦听器

$(document).on("click",".sidebar ul li a",function(){
  if (!$(this).parent().hasClass("current")) {
    $("li.current").removeClass("current");
    $(this).parent().addClass("current");
  } 
});


但是后来我意识到类被添加了,并且再次加载页面,类消失了

所以我使用了
page:load
page:change
。这就是我使用的:

$(document).on('page:change', function(){

  $('.sidebar ul li a').click(function() {
    $(this).parent().siblings().removeClass('current');
    $(this).parent().addClass('current');
  });

});
但我似乎没选对

现在我需要帮助将该类添加到元素中,并在重新加载或页面更改后仍保留该类。 附:更多信息

我的清单文件

//= require jquery
//= require jquery.turbolinks
//= require current 
//= require jquery_ujs
//= require twitter/bootstrap
//= require turbolinks
当前是我为这个特定操作使用的代码所在的位置。
Ruby on Rails
Jquery railties 3.1.3
涡轮链接

jQuery turbolinks

事实上,我担心您无法保留任何javascript变量、状态或事件,使其在页面加载/更改后仍然有效。您必须将它们存储在cookies/localstorage/等中,从新链接url解析它们或将它们设置为服务器端。
另一种方法是不完全重新加载页面,只通过ajax重新加载主要内容,替换它并设置导航链接类。如果您打算这样做,您还应该查看HTML5历史API和PushState,以便根据您的链接更改URL。

您必须使用服务器端代码来检测当前的
路由/URL
,然后将活动类添加到其中


由于
JavaScript/jQuery
是客户端的,正如@Mandeep在评论中指出的那样,当页面刷新时,您不能保留类。

您不能保留jsp应用的类您就是那个人,谢谢。