2011-01-04 10 views
5

इन दो कार्यों को लोड और आकार बदलने पर निकाल दिया जाना चाहिए। मैं सोच रहा हूं कि इसे और अधिक कॉम्पैक्ट और सुंदर कैसे लिखना है। कोई विचार?मैं इस jQuery स्निपेट को और अधिक सुंदर कैसे लिख सकता हूं

$(document).ready(function() { 
    fullScreen(); 
    footer(); 
    $(window).resize(function() { 
     fullScreen(); 
     footer(); 
    }); 
}); 

उत्तर

6

आप अपने हैंडलर रजिस्टर सही होने के बाद resize घटना ट्रिगर कर सकते हैं:

$(document).ready(function() { 
    $(window).resize(function() { // Register handler. 
     fullScreen(); 
     footer(); 
    }).resize();     // Trigger event. 
}); 
+0

ओह अच्छा है! –

+0

ओह हाँ, यह है! – Thomas

+0

अपने स्वयं के फ़ंक्शन को कॉल करने के लिए किसी ईवेंट को ट्रिगर करना ... इसे हल्के ढंग से रखने के लिए अनुकूल नहीं है। –

4

ठीक है, आप उन्हें एक समारोह में जोड़ सकता है, लेकिन मुझे यकीन है कि इसे और अधिक "सुंदर" है नहीं कर रहा हूँ:

jQuery(function($) { 

    both(); 
    $(window).resize(both); 

    function both() { 
     fullScreen(); 
     footer(); 
    } 
}); 

यह अपने आप को दोहरा नहीं के मुद्दे का समाधान करता है।

ऑफ-विषय: मैंने $(document).ready(function(){... को jQuery(function($){... पर भी स्विच किया। यह वही काम करता है, लेकिन यह उपयोगी है, तो उद्धृत कोड noConflict के साथ संगत बनाता है। आप noConflict अनुकूलता नहीं करेंगे, तो आप $(function(){... बजाय उपयोग कर सकते हैं, लेकिन हे, छह अतिरिक्त वर्ण के लिए ...

+0

यह शायद अधिक इष्टतम है, लेकिन इस मामले में मैं फ्रेडेरिक हामिदी के अधिक कॉम्पैक्ट उत्तर पसंद करता हूं;) धन्यवाद। – Thomas

2
$(function() { 
    function both() { 
     fullScreen(); 
     footer(); 
    } 

    both(); 
    $(window).resize(both); 
}); 
0
$(document).ready(function() { 
     var doStuff = function() { 
      fullScreen(); 
      footer(); 
     }; 
     doStuff(); 

     $(window).resize(function() { 
      doStuff(); 
     }); 
    }); 
+1

आपके पास कोड की 2 अनावश्यक बिट्स हैं, इस तरह की फ़ंक्शन घोषणा क्यों लिखें, और किसी अज्ञात फ़ंक्शन पर कॉल में फ़ंक्शन कॉल क्यों लपेटें? –

1

@TJ पाउडर का जवाब (किसी अन्य विधि पर कॉल करें) एक आदर्श समाधान दिखता है।

कॉल एक नई पद्धति को कब्जा इरादा उन तरीकों के दोनों के लिए कॉल के, यह कार्यात्मक बना रही है।

इसके अलावा, अगर आपको लोड या आकार बदलने के लिए क्या करना है, तो आपको केवल इसे एक विधि में बदलना होगा बनाए रखने योग्य

एक सार्थक नाम उदा। readjustLayoutAfterResize जो इरादे का वर्णन करता है उसे पठनीय बनाता है।

कार्यात्मक, रखरखाव और पठनीय मेरे लिए सुंदर है और मुझे यकीन है कि जो भी इसे बनाए रखेगा।

+1

यह कोई जवाब नहीं है? यह एक टिप्पणी है। –

+0

यह एक टिप्पणी हो सकती थी। हालांकि यह एक अच्छा है। –

+0

मैंने सोचा कि @Marcus और @Tomalak भी, लेकिन चूंकि इसमें जानकारी शामिल है कि दृष्टिकोण सुंदर के मानदंडों को पूरा क्यों कर सकता है, यह एक क्रैम्पड टिप्पणी के बजाय उत्तर के रूप में अधिक उपयोगी लगता है जिसे विस्तारित/पढ़ा नहीं जा सकता है। – StuperUser

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

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