2013-02-14 43 views
9

का उपयोग करें तो मुझे लोड करने पर छिपी हुई सामग्री के एक टुकड़े पर स्लैबटेक्स्ट का उपयोग करने के साथ एक छोटी सी समस्या मिली है (इसी तरह मैंने दूसरे दिन पोस्ट किया: http://bit.ly/11JpbdY) । इस बार, मैं स्लाइडर में मौजूद कुछ सामग्री के प्रदर्शन को अपडेट करने के लिए slabText प्राप्त करने का प्रयास कर रहा हूं (ट्विटर बूटस्ट्रैप कैरोसेल प्लगइन का उपयोग करके)।बूटस्ट्रैप कैरोसेल "स्लाइड" ईवेंट और .next क्लास

बूटस्ट्रैप के कैरोसेल प्लगइन के लिए ट्विटर के दस्तावेज़ (http://twitter.github.com/bootstrap/javascript.html#carousel) के बाद, मैं slide ईवेंट का उपयोग करने की कोशिश कर रहा हूं ताकि मैं इसे सही तरीके से प्रदर्शित करने के लिए स्लैबटेक्स्ट को फिर से कॉल कर सकूं।

डेवलपर टूल का उपयोग करके मैं देख सकता हूं कि कैरोसेल .next कक्षा जोड़ता है क्योंकि यह अगले .item तत्व की स्लाइड को संसाधित करता है। इसे .active कक्षा स्थानांतरित करने से पहले हटा दिया जाता है।

मैं बिना किसी समस्या के "स्लाइड" ईवेंट तक पहुंच सकता हूं, लेकिन .next तत्व को पकड़ने की कोशिश करना परेशानी साबित कर रहा है। यहाँ मेरी कोड का एक JSFiddle इस प्रकार दूर है: http://jsfiddle.net/peHDQ/

बस मेरे सवाल डाल करने के लिए; फ़ंक्शन को ट्रिगर करने के लिए मुझे slide ईवेंट का सही तरीके से उपयोग कैसे करना चाहिए?

कृपया मुझे बताएं कि कोई अतिरिक्त जानकारी उपयोगी होगी या नहीं।


इसके अलावा नोट:

मैं .next वर्ग की पकड़ प्राप्त करने में असमर्थ किया गया है के रूप में, मैं कुछ jQuery के साथ ऐसा करने का प्रयास कर रहा हूँ। मैं क्या समझते हैं कि यह प्रत्येक .slab तत्व हथियाने किया जाना चाहिए और SlabText प्लगइन ट्रिगर से

$('.carousel').carousel({ 
    interval: 5000 
}).on('slide', function (e) { 
    $(this).find('.active').next().find('.slab').slabText(); 
}); 

.... हाय मैं कोई त्रुटि मिलती है: यहाँ मेरी कोड इस प्रकार दूर है

"Uncaught TypeError: ऑब्जेक्ट [ऑब्जेक्ट ऑब्जेक्ट] में कोई विधि नहीं है 'स्लैबटेक्स्ट' '

क्या कोई सलाह दे सकता है कि मैं यहां क्या कर रहा हूं ...? मैंने कक्षा जोड़ने के लिए सटीक प्रक्रिया का उपयोग किया है और यह ठीक काम करता है (इस JSFiddle के अनुसार: http://jsfiddle.net/peHDQ/2/)

उत्तर

14

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

$('.carousel').carousel({ 
     interval: 5000 
    }).on('slide', function (e) { 
     var xx = $(this); 
     setTimeout(function() { 
      xx.find('.active').next().find('.slab').slabText(); 
     } , 0); 
    }); 
+0

क्षमा करें कि इस पोस्ट में केवल एक प्रकार का था। मैंने कोशिश की है (http://jsfiddle.net/peHDQ/2/) और फिर भी कोई खुशी नहीं! – Sheixt

+0

मैंने अपना जवाब अपडेट किया। यह अब काम करना चाहिए। –

+0

धन्यवाद! यह एक बिंदु पर, ठीक है, काम करता है। तो मुझे लगता है कि मुद्दा यह है कि फ़ंक्शन को संसाधित करने से पहले इसे देरी की आवश्यकता है। 50 मिलीसेकंड में समय निर्धारित करने में एकमात्र समस्या यह है कि यदि उपयोगकर्ता धीमे कनेक्ट पर है तो समस्या अभी भी होती है। यदि आप इसे अधिक लंबे समय तक सेट करते हैं, तो तेज़ कनेक्शन वाले लोग स्टटर देखते हैं। इस पर कोई सुझाव? – Sheixt