2010-05-27 16 views
10

के कारण मैं jQuery ui को उपयोग कर रहा हूँ और कुछ बिंदु पर मैं इस शो और छिपाने कार्यों का उपयोग काफी भारी में और बाहर आने के बदलते छवियों चेतन करने के लिए।jQuery ui प्रभाव-आवरण कहर

किसी कारण से, के बाद कुछ प्रयास अचानक नियंत्रण के सभी पर मेरा पेज बंद क्लिक्स का जवाब। arround poking फ़ायरबग का उपयोग करने का एक सा होने के बाद मुझे पता चला मेरा पेज div class ui प्रभाव-आवरण के से भरा है।

मैं ऐसा क्यों होता है या इसे रोकने के लिए कैसे पता नहीं है। अगर मैं इन divs को हटा देता हूं तो मैं अब उन छवियों को नहीं देख सकता जो मैं एनिमेट कर रहा हूं।

कोई भी विचार?

+1

क्या आपका HTML मान्य है? यदि ऐसा नहीं है तो तत्व निष्कासन सभी जगह पर होगा, यहां वैधता की जांच करें: http://validator.w3.org/ –

+0

आइटम हटाने से वैधता क्यों जुड़ी हुई है? इसे ठीक करने के लिए मैं इतना कुछ नहीं कर सकता। मैं अपनी वेबसाइट पर फेसबुक नियंत्रण का उपयोग कर रहा हूं और उनके नियंत्रण w3 मान्य नहीं हैं = [कोई अन्य विचार? – vondip

उत्तर

3

ui प्रभाव-आवरण jQuery यूआई प्रभाव प्लगइन द्वारा जोड़ा गया है।

// Wraps the element around a wrapper that copies position properties 
createWrapper: function(element) { 

    // if the element is already wrapped, return it 
    if (element.parent().is('.ui-effects-wrapper')) { 
     return element.parent(); 
    } 

    // wrap the element 
    var props = { 
      width: element.outerWidth(true), 
      height: element.outerHeight(true), 
      'float': element.css('float') 
     }, 
     wrapper = $('<div></div>') 
      .addClass('ui-effects-wrapper') 
      .css({ 
       fontSize: '100%', 
       background: 'transparent', 
       border: 'none', 
       margin: 0, 
       padding: 0 
      }); 

    element.wrap(wrapper); 
    wrapper = element.parent(); //Hotfix for jQuery 1.4 since some change in wrap() seems to actually loose the reference to the wrapped element 

    // transfer positioning properties to the wrapper 
    if (element.css('position') == 'static') { 
     wrapper.css({ position: 'relative' }); 
     element.css({ position: 'relative' }); 
    } else { 
     $.extend(props, { 
      position: element.css('position'), 
      zIndex: element.css('z-index') 
     }); 
     $.each(['top', 'left', 'bottom', 'right'], function(i, pos) { 
      props[pos] = element.css(pos); 
      if (isNaN(parseInt(props[pos], 10))) { 
       props[pos] = 'auto'; 
      } 
     }); 
     element.css({position: 'relative', top: 0, left: 0, right: 'auto', bottom: 'auto' }); 
    } 

    return wrapper.css(props).show(); 
}, 
0

एक समारोह में, मैं कुछ कोड है कि दो बटन और इस तरह के fadeTo और उछाल के रूप में कार्यरत प्रभाव की दृश्यता टॉगल था:

यहाँ कुछ jquery.effects.core.js से लिया कोड है। कभी-कभी एक रैपर शेष होगा। मैंने इसे अपनी विधि में जोड़ने का प्रयास किया, यह विचार यह है कि यह प्रभाव डालने के 1.1 सेकंड बाद रैपर को हटा देता है।

setTimeout('$(".ui-effects-wrapper").children().unwrap();', 1100); 

यह बालों के रैपर को हटा देता है, लेकिन ऐसा मौका है कि यह प्रभाव के लिए उपयोग किए जाने वाले बाद के रैपर को भी हटा सकता है।

मैं बहुत इस तकनीक के बारे में कोई सुधार देखने में रुचि होगी।

+1

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