2010-12-01 16 views
7

मेरे पास यह कोड किसी साइट पर प्रत्येक पृष्ठ के लिए छवि स्लाइडर के लिए बाहरी स्क्रिप्ट से चल रहा है।यदि बॉडी क्लास एक्स के बराबर है तो कुछ करें?

$(document).ready(function() { 
    $("#slideshow").show(); 
    $('#slider1').anythingSlider({ 
    buildNavigation: false, 
    delay: 8000 
    }) 

पृष्ठों में से एक पर मैं नहीं चाहता कि छवि स्लाइडर स्वचालित रूप से घुमाए ताकि मुझे अतिरिक्त चर जोड़ने की आवश्यकता हो। मैं पेज के शरीर पर एक वर्ग रख दिया और की तर्ज पर कुछ करना चाहता हूँ है ...

शरीर 'partnerCharitiesDetail' के एक वर्ग है, तो सामान्य से एक

की इस स्क्रिप्ट को चलाने के बजाय

यह वही है जो मैंने नीचे की कोशिश की है (सफलता के बिना)। मैं 2 सवाल वास्तव में,

1) jQuery में क्या होता है जब वहाँ 2 समान (इस उदाहरण की तरह) चल रहा स्क्रिप्ट हैं, यह नए एक के साथ पुराने एक के ऊपर लिख देगा है?

2) मैं गलत कहाँ जा रहा हूँ ?! क्या मेरा दृष्टिकोण इसे करने का सबसे अच्छा तरीका है?

$(document).ready(function() { 
$("#slideshow").show(); 
    $('#slider1').anythingSlider({ 
    buildNavigation: false, 
    delay: 8000 
    }) 

    if ($('body.partnerCharitiesDetail').length > 0){ 
    $('#slider1').anythingSlider({ 
    buildNavigation: false, 
    delay: 8000, 
    startStopped: false 
}) 
} 

धन्यवाद!

+0

मुझे लगता है कि मेरी सुराग बड़े अक्षरों में "एक वर्ग है"! – Yammi

उत्तर

17

उपयोग hasClass() विधि की जाँच करने के कह सकते है कक्षा।

इसके अलावा, अपने कोड एक छोटे से दोहराव है (और यहां तक ​​कि दो बार चलाने के लिए AnythingSlider कारण बन सकता है) - मैं इसे इस के बजाय तरह लिखना होगा:

$(document).ready(function() { 
    // Initialize options first 
    var options = { 
     buildNavigation: false, 
     delay: 8000 
    }; 

    // Only disable startStopped if the body has this class 
    if ($('body').hasClass('partnerCharitiesDetail')) { 
     options.startStopped = false; 
    } 

    // Show the #slideshow element and start the slideshow 
    $('#slideshow').show(); 
    $('#slider1').anythingSlider(options); 
}); 
+0

बढ़िया! यह पूरी तरह से काम करता है और बहुत साफ है और अधिक समझ में आता है। धन्यवाद – Yammi

2
if ($('body').hasClass('partnerCharitiesDetail')) { 
    ... 

मेरा सुझाव है:

$("#slideshow").show(); 
var options = { 
    buildNavigation: false, 
    delay: 8000 
    }; 

if ($('body').hasClass('partnerCharitiesDetail')) { 
    options.startStopped = false; 
} 
$('#slider1').anythingSlider(options); 
+0

हमारा कोड लगभग समान है: पी – BoltClock

+0

हाँ, वे दोनों महान काम करते हैं, धन्यवाद! – Yammi

4

आप hasClass

को देखा तो तुम अगर एक तत्व एक निश्चित है

if($("body").hasClass("partnerCharitiesDetail")) 
{ 
} 
else 
{ 
} 
0

इस

 
if($("body").isClass(".partnerCharitiesDetail")) { 
//code if body has specific class name 
} 
else { 
//code if body has no specific class name 
} 

+0

वह नहीं पूछ रहा है कि किसी भी चीज स्लाइडर के साथ 'startStopped' का उपयोग कैसे करें। वह पूछ रहा है कि बॉडी क्लास की जांच कैसे करें। – BoltClock

+0

मुझे लगता है कि मुझे तुम्हारा बिंदु मिल गया है। मेरी गलती दोस्त को सुधारने के लिए धन्यवाद –

1

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

जैसा कि बताया गया है, उचित अगर किसी वर्ग में कक्षा है तो जांचने का तरीका है। hasClass ("classname")।

if($("body").hasClass("partnerCharitiesDetail")) { 
} 
else { 
} 

हालांकि इस विशिष्ट मामले में मैं सिर्फ

$('#slider1').anythingSlider({ 
    buildNavigation: false, 
    delay: 8000, 
    startStopped: !($("body").hasClass("partnerCharitiesDetail")) 
}) 

करना चाहते हैं और हो सकता है भविष्य खोजकर्ता के लिए एक टिप्पणी जोड़ें।

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