Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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 - Fatal编程技术网

Jquery 切换背景色

Jquery 切换背景色,jquery,Jquery,在这里,我在单击链接时将导航栏的背景色从白色更改为黑色,我需要在松开链接时将导航栏恢复为白色背景 // Navigation dropdown start $(".navbar-header .dropdown .nav-link").click(function(e){ $(this).closest(".navbar-header").addClass("navbar-selected"); }); $(document).click(function(event)

在这里,我在单击链接时将导航栏的背景色从白色更改为黑色,我需要在松开链接时将导航栏恢复为白色背景

// Navigation dropdown start

  $(".navbar-header .dropdown .nav-link").click(function(e){
    $(this).closest(".navbar-header").addClass("navbar-selected");
  });

  $(document).click(function(event){
    $(".navbar-header").removeClass("navbar-selected");
  });

  // Navigation dropdown end


我需要这样做-

您可以通过保存上一个目标并在此基础上添加/删除所选的
导航栏类来完成,如:

let previousTarget = null;
$(".navbar-header .dropdown .nav-link").click(function(e) {
  if (this !== previousTarget) {
    $(this).closest(".navbar-header").addClass("navbar-selected");
    previousTarget = this;
  } else {
    $(this).closest(".navbar-header.navbar-selected").removeClass("navbar-selected");
    previousTarget = null;
  }  
});

我根据帕拉什的反应来解释这一点。您只需根据类上是否有活动的类
navbar
,添加和删除该类即可。我希望这是您正在寻找的用例。让我知道

当菜单打开或关闭时,您可以侦听从引导添加或删除类,如下所示:

$(".navbar-header").on('show.bs.dropdown', function(e) {
  $(this).addClass("navbar-selected");
});

$(".navbar-header").on('hide.bs.dropdown', function() {
  $(this).removeClass("navbar-selected");
})

您好Palash,谢谢您的回复,我尝试了“toggleClass”,但是,当我单击DD 1然后单击DD 2时,背景就起作用了。您的意思是说,当您单击DD 1然后再次单击时,它工作正常。但是,当您单击DD One然后单击DD Two时,导航栏所选的类仍应保留在那里,并且只有在再次单击DD Two时才会被删除?是的,正是这样:)谢谢,msg。这是我想要的。谢谢。谢谢大家。
$(".navbar-header").on('show.bs.dropdown', function(e) {
  $(this).addClass("navbar-selected");
});

$(".navbar-header").on('hide.bs.dropdown', function() {
  $(this).removeClass("navbar-selected");
})