मेरी active
कक्षा <li>
के बीच स्विच नहीं कर रही है और मुझे यकीन नहीं है कि क्यों.. यहां मेरे कोड का एक स्निपेट है:
.active {
background: #ef5b00;
color: #FFF;
}
<head>
<meta charset="utf-8">
<title>Test</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="master.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
</head>
<body>
<div class="wrapper">
<nav class="sidebar" id="sidebar-id">
<div class="sidebar-header">
<h3>Test</h3>
</div>
<!-- end sidebar header -->
<ul class="list-unstyled nav components">
<li class="active"><a href="#"><i class="glyphicon glyphicon-home"></i>Home</a></li>
<li><a href="#"><i class="glyphicon glyphicon-briefcase"></i>About</a></li>
<li><a href="#"><i class="glyphicon glyphicon-duplicate"></i> Pages</a></li>
<li><a href="#"><i class="glyphicon glyphicon-link"></i>Portfolio</a></li>
<li><a href="#"><i class="glyphicon glyphicon-send"></i>Contact</a></li>
</ul>
<!-- end sidebar links -->
</nav>
<!-- end sidebar -->
<script type="text/javascript">
$(".nav li").click(function() {
if ($(".nav li").hasClass("active")) {
$(this).removeClass("active");
} else {
$(this).addClass("active");
}
});
</script>
</body>
जैसा कि आप देख सकते हैं कि क्लिक किए गए लिंक ग्रे रंग के होते हैं, हालांकि 'ऑरेंज' active
वर्ग स्थानांतरित नहीं होता है।
मुझे लगता है कि मेरा css
गलत है क्योंकि मेरा मानना है कि यह अब bootstarp द्वारा प्रबंधित किया जाता है, हालांकि मुझे यकीन नहीं है कि मैं क्या गलत कर रहा हूं।
3 जवाब
ऐसा इसलिए है क्योंकि जब वे क्लिक करते हैं तो सक्रिय वर्ग किसी अन्य ली पर नहीं जाता है (jQuery कोड जोड़ें)
नीचे लाइक करें:-
$(document).ready(function(){
$('li').click(function(){
$('li').removeClass('active');
$(this).addClass('active');
$(this).find('a').blur(); // to stop link hover CSS effect imidiattly (first-time)
});
});
.sidebar ul li.active {
background: #ef5b00;
color: #FFF;
}
<head>
<meta charset="utf-8">
<title>Test</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="master.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
</head>
<body>
<div class="wrapper">
<nav class="sidebar" id="sidebar-id">
<div class="sidebar-header">
<h3>Test</h3>
</div>
<!-- end sidebar header -->
<ul class="list-unstyled nav components">
<li class="active"><a href="#"><i class="glyphicon glyphicon-home"></i>Home</a></li>
<li><a href="#"><i class="glyphicon glyphicon-briefcase"></i>About</a></li>
<li><a href="#"><i class="glyphicon glyphicon-duplicate"></i> Pages</a></li>
<li><a href="#"><i class="glyphicon glyphicon-link"></i>Portfolio</a></li>
<li><a href="#"><i class="glyphicon glyphicon-send"></i>Contact</a></li>
</ul>
<!-- end sidebar links -->
</nav>
<!-- end sidebar -->
</body>
--> कृपया अपने कस्टम जेएस में निम्नलिखित जेएस जोड़ें:
$(document).ready(function(){
$('ul li').click(function(){
$('li').removeClass("active");
$(this).addClass("active");
});
});
.sidebar ul .active {
background: #ef5b00;
color: #FFF;
}
<head>
<meta charset="utf-8">
<title>Test</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="master.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
</head>
<body>
<div class="wrapper">
<nav class="sidebar" id="sidebar-id">
<div class="sidebar-header">
<h3>Test</h3>
</div>
<!--end sidebar header-->
<ul class="list-unstyled nav components">
<li><a href="#"><i class="glyphicon glyphicon-home"></i>Home</a></li>
<li><a href="#"><i class="glyphicon glyphicon-briefcase"></i>About</a></li>
<li><a href="#"><i class="glyphicon glyphicon-duplicate"></i> Pages</a></li>
<li><a href="#"><i class="glyphicon glyphicon-link"></i>Portfolio</a></li>
<li><a href="#"><i class="glyphicon glyphicon-send"></i>Contact</a></li>
</ul>
<!-- end sidebar links -->
</nav>
<!-- end sidebar -->
</div>
</body>
उस सक्रिय वर्ग को एक ली से दूसरे में स्थानांतरित करने के लिए आपको एक जेएस कोड की आवश्यकता है। कृपया निम्नलिखित देखें
.sidebar ul .active {
background: #ef5b00;
color: #FFF;
}
<head>
<meta charset="utf-8">
<title>Test</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="master.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
</head>
<body>
<div class="wrapper">
<nav class="sidebar" id="sidebar-id">
<div class="sidebar-header">
<h3>Test</h3>
</div>
<!-- end sidebar header -->
<ul class="list-unstyled nav components">
<li class="active"><a href="#"><i class="glyphicon glyphicon-home"></i>Home</a></li>
<li><a href="#"><i class="glyphicon glyphicon-briefcase"></i>About</a></li>
<li><a href="#"><i class="glyphicon glyphicon-duplicate"></i> Pages</a></li>
<li><a href="#"><i class="glyphicon glyphicon-link"></i>Portfolio</a></li>
<li><a href="#"><i class="glyphicon glyphicon-send"></i>Contact</a></li>
</ul>
<!-- end sidebar links -->
</nav>
<!-- end sidebar -->
<script>
$('.components li').click(function(){
$('.components li').removeClass('active');
$(this).addClass('active');
$(this).find('a').blur()
})
</script>
</body>
नए सवाल
jquery
jQuery एक जावास्क्रिप्ट लाइब्रेरी है, जावास्क्रिप्ट टैग को जोड़ने पर भी विचार करें। jQuery एक लोकप्रिय क्रॉस-ब्राउज़र जावास्क्रिप्ट लाइब्रेरी है, जो दस्तावेज़ ऑब्जेक्ट मॉडल (DOM) ट्रैवर्सल, इवेंट हैंडलिंग, एनिमेशन और AJAX इंटरैक्शन को ब्राउज़रों की विसंगतियों को कम करके सुविधाजनक बनाता है। JQuery से संबंधित एक प्रश्न jQuery से संबंधित होना चाहिए, इसलिए jQuery को प्रश्न में कोड द्वारा उपयोग किया जाना चाहिए और कम से कम jQuery के उपयोग से संबंधित तत्वों को प्रश्न में होना चाहिए।