2013-07-15 9 views
5

कोई कथन करने का प्रयास कर रहा है जो यह पता लगाता है कि किसी सूची आइटम में 'सक्रिय' 'सक्रिय' और 'आइटम' को निर्दिष्ट किया गया है या नहीं। मैंने जो भी पोस्ट पढ़ा है, यह जांचना है कि आइटम में तीन वर्गों में से एक है या नहीं। मैं जानना चाहता हूं कि आइटम में तीनों कक्षाएं हैं। कृपया कोई मददगार मददगार होगा धन्यवाद।यह जांचने के लिए कि क्या किसी आइटम में तीन विशिष्ट वर्ग हैं और यदि ऐसा है तो यह

यह मैं क्या अब तक

 var $activeItem = $("#project05 ol.carousel-inner li.item"); 
    if ($activeItem.hasClass('about') & $activeItem.hasClass('active') & $activeItem.hasClass('item')) { 
     alert("slide4 about is selected"); 
    } 

यहाँ एचटीएमएल

<div id="project05" class="carousel slide">    
       <!-- Carousel items --> 
       <ol class="carousel-inner"> 
       <li class="item home active"> 
       </li> 
       <li class="item about"> 
       </li> 
       <li class="item solutions"> 
       </li> 
       <li class="item approach"> 
       </li> 
       </ol> 
       <!-- Carousel nav --> 
       <ol class="carousel-linked-nav"> 
       <li class="active"><a href="#1">Home</a></li> 
       <li><a href="#2">About</a></li> 
       <li><a href="#3">Solutions</a></li> 
       <li><a href="#4">Approach</a></li> 
       </ol> 
       <a class="carousel-control left" href="#project05" data-slide="prev">&lsaquo;</a> 
       <a class="carousel-control right" href="#project05" data-slide="next">&rsaquo;</a> 
      </div> 

यहाँ है क्या मैं जो लोग पता करने के लिए चाहते हो सकता है के लिए, के लिए देख रहा था के लिए जवाब है नहीं है।

function carouselSlide() { 
    $('#exterior-page .carousel').bind('slid', function() { 
     $('#exterior-page.carousel-linked-nav .active').removeClass('active'); 
     var idx = $('#exterior-page .carousel .item.active').index(); 
     $('#exterior-page .carousel-linked-nav li:eq(' + idx + ')').addClass('active'); 
     if(idx === 0) { 
      // alert("home page"); 
      $("#main-nav").removeClass(); 
      $("#main-nav").addClass('home-color'); 
     } 
     else if(idx === 1) { 
      // alert("about page"); 
      $("#main-nav").removeClass(); 
      $("#main-nav").addClass('about-color'); 
     } 
     else if(idx === 2) { 
      // alert("solutions page"); 
      $("#main-nav").removeClass(); 
      $("#main-nav").addClass('solutions-color'); 
     } 
     else if(idx === 3) { 
      // alert("approach page"); 
      $("#main-nav").removeClass(); 
      $("#main-nav").addClass('approach-color'); 
     } 
    }); 
    } 
+1

क्यों आप 'जाँच करने के लिए आइटम की जरूरत है? यह चयनकर्ता में था। – Barmar

उत्तर

2

Musa's answer के रूप में पहले से ही अपने वोट दें है, लेकिन यहां एक छोटे से अतिरिक्त है के रूप में यह है इस मामले याद आ रही थी:

आपका चयनकर्ता वर्गयदि एक से अधिक आइटम लौट सकते हैंएक से अधिक <li> -element पर मौजूद है। इस मामले में:

if ($activeItem.is('.about.active')) {} 

हमेशा true वापस आ जाएगी, तो कम से कम एक तत्व विशिष्ट वर्गों है। कई प्रविष्टियाँ वर्ग item आप इस तरह एक पाश में परिणाम की जांच कर सकते हो सकता है, तो:

$.each($activeItem, function(key, value) { 
    if ($(value).is('.active')) { 
     alert ('Slide ' + key + ' is selected'); 
    } 
}); 

या

एक और विचार सीधे तत्व का चयन करने और इस तरह सूचकांक प्राप्त करने के लिए है:

var selected = $('ul li.active').index(); 

आप सही ऊपर key करने के लिए या बयान के + 1 जोड़ सकते हैं अगर आप चाहते हैं के रूप में दोनों मान शून्य आधारित हैं।

डेमो

Try before buy

संपादित

ऐसा लगता है, कि आप Twitter BootStrap Carousel उपयोग कर रहे हैं। यदि यह मामला है, तो आप slid -event को बाध्य कर सकते हैं, जो प्रत्येक क्रिया के बाद आग लगती है (जैसे पिछला/अगला बटन क्लिक करना या नेविगेशन का उपयोग करना)।

$('.carousel').bind('slid', function() { 
    var selected = $('ul li.active').index(); 
});​ 
+0

तो मुझे अभी भी एक उत्तर नहीं मिला है जो काम कर रहा है। मुझे लगता है कि मुझे कुछ प्रकार की लूप करने की ज़रूरत है जो सूची वस्तुओं के माध्यम से चक्रों को खोजता है और फिर उस सूची आइटम की खोज करता है जिसमें निम्नलिखित तीन वर्ग लागू होते हैं। लेकिन फिर मुझे पूरा यकीन नहीं है कि यह कैसे करना है क्योंकि मैंने जो भी प्रयास किया है, वह असफल रहा है। –

+0

मुझे लगता है कि आपने प्रश्न अपडेट किया है। चयनित 'li' की संख्या प्राप्त करने के लिए मेरा दूसरा दृष्टिकोण इस प्रकार उपयोग करें:' var चयनित = $ ('ol.carousel-inner li.active')। अनुक्रमणिका(); '। उदाहरण के लिए यदि यह मान 'लगभग '' 'से' 1' चुना गया है। – insertusernamehere

+0

इसलिए मुझे इंडेक्स() का उपयोग करके अपने तर्क का उपयोग करने का तरीका पसंद है, लेकिन यह केवल डोम लोड होने के बाद ही सूची को चलाता है और फिर यह छोड़ देता है, इसलिए अगर मैं इंडेक्स को केवल 1 पर सेट करता तो यह कभी भी कुछ भी सतर्क नहीं होगा होम पेज को पहली सूची लोड होने के बाद से 0 पर सेट किया गया था। एक तरीका की आवश्यकता है ताकि यह लगातार आदेशित सूची वस्तुओं के माध्यम से लूपिंग हो। अब तक दी गई सहायता के लिए धन्यवाद :) –

3
& $activeItem.hasClass('active') 

&& $activeItem.hasClass('active') 

स्थिति का उपयोग करना पड़ता है होना चाहिए डबल &

आपका अगर यह

if ($activeItem.hasClass('about') && $activeItem.hasClass('active') 
            && $activeItem.hasClass('item')) { 
6
की तरह दिखना चाहिए

प्रयास करें

if ($activeItem.is('.about.active')) { 
    alert("slide4 about is selected"); 
} 

मैं item शामिल नहीं किया था, क्योंकि यह है कि कोई आइटम यह पहले से ही उस वर्ग होगा चयन किया जाता है $activeItem चयन करने के लिए तो चयनकर्ता में प्रयोग किया जाता है। कुछ देर बाद आप 3 वर्गों जब शायद तत्वों की कक्षाएं उपयोग को बदल सकता है के लिए परीक्षण करना चाहते हैं if ($activeItem.is('.about.active.item')){

नोट is सच वापस आ जाएगी, यदि कोई हो li वर्गों है तो उसे आप एक व्यक्तिगत आधार पर परीक्षण करने के लिए

चाहते हैं
$activeItem.each(function(){ 
    if ($(this).is('.about.active')) { 
     alert("slide4 about is selected"); 
    } 
}); 
1

आप ऐसा कर सकता है:

var $activeItem = $("#project05 ol.carousel-inner li.item"); 
if ($activeItem.hasClass('about') && $activeItem.hasClass('active') && $activeItem.hasClass('item')) { 
    alert("slide4 about is selected"); 
} 

आप "और" हालत में के लिए दो & जरूरत है इस चाल करना चाहिए।

यह बेहतर हो सकता है:

if ($activeItem.is('.about.active.item')) { 
    alert("slide4 about is selected"); 
} 

या, निर्भर करता है, आप ऐसा करने में सक्षम हो सकता:

var $activeItem = $("#project05 ol.carousel-inner li.item.active.about"); 

कौन सा केवल आइटम वापस होगा अगर यह सही वर्गों के साथ शुरू करने के लिए है ।

-1

('। के बारे में, .active, .item') इस

$ activeItem.is तरह का प्रयास करें

संबंधित मुद्दे