2012-04-26 13 views
6

में jquery का उपयोग कर jquery मैंने थोड़ी सी jquery स्क्रिप्ट बनाई और मुझे कस्टम फ़ंक्शन में (यह) उपयोग करने में समस्या है।कस्टम फ़ंक्शन

jQuery("li").click(function() 
{ 
    var scrollTop = jQuery(window).scrollTop(); 
    if(scrollTop > 0) 
    { 
     jQuery('html, body').animate({ scrollTop: 0 }, 'slow', function() 
     { 
      fadeItems(); 
     }); 

    } 
    else 
    { 
     fadeItems();  
    } 

}); 

function fadeItems() 
{  
    var slogan = jQuery(this).children('p').html(); 

    jQuery('#slogan_text').fadeOut(150, function(){ 
     jQuery('#slogan_text').fadeIn(150).html(slogan); 
    }); 

    var content = jQuery(this).children('#post_content_large').html(); 
    jQuery('#content_view').html(content).hide(); 

    var status = jQuery("#readMore").html(); 

    if(status == 'Verbergen') 
    { 
     jQuery('#content_view').fadeIn(500, function(){ 
      jQuery('#content_view').fadeIn(500).html(content); 
     }); 
    } 

    var title = jQuery(this).children('h3').html(); 

    jQuery('#title_content').fadeOut(150, function(){ 
     jQuery('#title_content').fadeIn(150).html(title); 
    }); 
} 

तो समारोह चलता है जब एक सूची आइटम पर क्लिक करके और उस wel चला जाता है, लेकिन (यह) के मूल्यों

किसी को पता है कि यह कैसे तय करने के लिए रिक्त है:

इस कोड है?

अग्रिम धन्यवाद!

उत्तर

2

.call यहाँ उपयोगी हो सकता है:

jQuery("li").click(function() { 
    var self = this; 
    var scrollTop = jQuery(window).scrollTop(); 
    if(scrollTop > 0) { 
     jQuery('html, body').animate({ scrollTop: 0 }, 'slow', function() { 
      fadeItems.call(self); 
     });  
    } 
    else { 
     fadeItems.call(self); 
    }  
}); 
+0

धन्यवाद (यह) काम किया! :) –

2

क्योंकि आप इसे कार्य करने के लिए पारित करना होगा ताकि यह उपयोग कर सकते हैं (यह भी हो सकता है इस से अलग domething का उपयोग करें, कम (भ्रामक संपादित जब से तुम क्लिक किया आइटम)

var clicked = this; 
    jQuery('html, body').animate({ scrollTop: 0 }, 'slow', function() 
    { 
     fadeItems(clicked); 
    }); 

function fadeItems(el) 
{  
var slogan = jQuery(el).children('p').html(); 
+0

'उस मामले में this' तत्व वह की तलाश में नहीं है। –

+0

@ केविनबी ने नहीं पढ़ा कि उन्हें क्लिक्स किए गए आइटम की आवश्यकता है, –

2

उपयोग apply चाहते हैं:

fadeItems.apply(this);

इस तरह आप समारोह कॉल (मैन्युअल fadeItems में this का मान निर्दिष्ट) के लिए संदर्भ निर्दिष्ट कर सकते हैं

संपादित करें: के रूप में @KevinB द्वारा बताया गया है, आप माता-पिता समारोह में उर्फ ​​this करने की आवश्यकता होगी: var that = this;, और फिर समारोह, fadeItems.apply(that); में that गुजरती हैं।

+0

को सही किया गया है जो 'else {}' में बहुत अच्छा काम करता है, लेकिन एनिमेट के भीतर 'यह' 'एचटीएमएल' और 'बॉडी' तत्व –

+0

आह, अच्छी पकड़ को संदर्भित करता है। सिद्धांत वही है, लेकिन आपको संदर्भ को मूल दायरे में संग्रहीत करने की आवश्यकता है। – Mathletics

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