2010-04-28 22 views
6

के अंदर खींचा नहीं जा रहा है, मैं एक उल/ली सूची को पॉप्युलेट करने के लिए एक div का उपयोग कर रहा हूं और उसके बाद एक jCarousel खींचता हूं। तो यह ठीक काम करता है:jCarousel एक छिपे हुए div

$('#mycarousel').jcarousel(); 

यहाँ समस्या है:

div उल/li आइटम वाले एक और बटन को क्लिक करके छिपा हो सकता है। जब div छुपाया जाता है, और मैं ब्राउज़र विंडो को फिर से आकार देता हूं, तो jCarousel भी खुद को फिर से निकालने का प्रयास करता है, लेकिन चूंकि यह छिपा हुआ है, यह इसे ठीक से खींचने में सक्षम नहीं है। नतीजा यह है कि सूची में सब कुछ जुड़ा हुआ है (यदि मैं इसे दृश्यमान करने के लिए बटन को फिर से क्लिक करता हूं)। लेकिन फिर अगर मैं अब विंडो को दोबारा आकार देता हूं (झुका हुआ jcarousel अब छुपा नहीं है), यह खुद को सही ढंग से दोबारा हटा देता है।

मैंने jCarousel उदाहरण को पकड़ने की कोशिश की और जैसे ही बटन को दृश्यमान करने के लिए बटन क्लिक किया जाता है (जिस तरह से यह दृश्यमान होता है और खिड़की का आकार बदलता है)।

jCarousel पाने के लिए, मैं उपयोग कर रहा हूँ:

JQuery('#mycarousel').data('jcarousel') 

और यह शून्य के रूप में दिया जाता है।

मैं jCarousel को सही तरीके से आकर्षित करने के लिए कैसे प्राप्त कर सकता हूं?

उत्तर

3

थोड़ा और डिबगिंग और पाया गया कि जब ब्राउजर का आकार बदलता है (और कैरोसेल पहले से दिखाई दे रहा है), तो इसके रीलोड फ़ंक्शन को अपनी स्थिति समायोजित करने के लिए कहा जाता है, ताकि छुपा/शो डिवी परिदृश्य में स्वयं की सहायता करने के लिए, मैंने कॉल को समाप्त कर दिया रैपिंग div दिखाई देने के बाद कैरोसेल एपी का रीलोड फ़ंक्शन दिखाई देता है।

वास्तव में jcarousel उदाहरण को पकड़ने के लिए थोड़ा सा प्रयास था। तो यह प्रक्रिया दो चरणों में था ...

  1. हिंडोला उदाहरण के काबू पाने।

    var cInstance = null; 
    cInitCallback = function(c){ 
        cInstance = c; 
    }; 
    
    $('#mycarousel').jcarousel({ 
         initCallback: cInitCallback, 
    
        }); 
    
  2. div

    cInstance.reload(); 
    
+0

उसी स्थिति में भागो, आपके समाधान ने बहुत मदद की, धन्यवाद !! –

6

आपको क्या लगता है कि $().jcarousel() कॉल .data() के साथ कुछ भी करता है? प्लगइन द्वारा प्रदान की गई एपीआई के साथ चिपकने के लिए बेहतर है, यह अनुमान लगाने के बजाय कि यह हुड के नीचे कैसे काम करता है। वैसे भी, अपने प्रश्न का उत्तर देने के लिए ...

समस्या यह है कि, जब एक div छुपाया जाता है, तो इसकी ऊंचाई या चौड़ाई नहीं होती है। "ऑफ छोड़ दिया तकनीक" के बजाय div छिपा है, इस तरह का उपयोग करें:

#mycarousel { 
    height: 100px; /* whatever height your div will have when shown */ 
    width: 100px; /* whatever width your div will have when shown */ 
    position: absolute: 
    left: -10000px; 
} 

आप, यह दिखाने के $('#mycarousel').css('position', 'static') का उपयोग पूर्ण स्थिति को दूर करने के लिए चाहते हैं, और div जगह में कूद जाएगा।

थोड़ा और जानकारी here

+0

वहां पहले से ही कुछ जटिल सामान है कि div दिखा छुपा हो रहा है की इस शो पर हिंडोला को फिर से लोड, तो मैं इसके साथ खेलने के लिए अनिच्छुक था। आपका विचार कई अन्य परिदृश्यों में सहायक होगा जहां मुझे एक div में छिपा सामान से निपटना होगा। दिमाग में "ऑफ-बाएं तकनीक" रखेंगे। धन्यवाद –

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