2012-07-05 7 views
5

मैं अपने पन्ने पर तत्वों को hoverIntent प्लगइन जोड़ने की कोशिश कर रहा हूँ, लेकिन कुछ तत्वों डोम को बाद में जोड़ दिया जाएगा प्रारंभ जो मैं का मतलब प्लगइन को भविष्य के तत्वों के साथ भी बांधना होगा। आप उसे कैसे करते हैं? मैंने कुछ ही प्रश्नों को SO पर कुछ बार देखा है, लेकिन किसी के पास कोई स्पष्ट समाधान नहीं है?jQuery.on() - कैसे, जैसे ही तत्वों लोड हो जाने

+0

आप तक इंतजार करने की कोशिश कर रहे हैं; छवियों या jquery कार्यों को लोड किया? –

+0

एक घटना के रूप में लागू किया गया एक होवरिंटेंट प्लगइन का उपयोग करें ताकि यह प्रतिनिधिमंडल का समर्थन कर सके .. '" होवरिंटेंट "एक घटना नहीं होनी चाहिए: X – Esailija

+0

@barlas वास्तव में नहीं, नई सामग्री InfiniteScroll का उपयोग करके लोड की जाती है। –

उत्तर

2

ऐसा करने के लिए jQuery में कोई समर्थन नहीं है; यह प्लगइन स्वयं ही समर्थन करना चाहिए। सबसे आम तरीका नई सामग्री जोड़ने के बाद प्लगइन को फिर से शुरू करना है; जो आमतौर पर एक समस्या नहीं है।

एक और विकल्प liveQuery plugin का उपयोग करना है, और ऐसा कुछ करें;

$('yourSelector').livequery(function() { 
    $(this).hoverIntent({ 
     // blah 
    }); 
}); 
+0

मैंने एक 're_init()' फ़ंक्शन लिखा है जिसमें सभी कोड शामिल हैं जिन्हें एक बार नई सामग्री लोड होने के बाद पुन: प्रारंभ करने की आवश्यकता होती है। मुझे केवल एहसास हुआ कि ** hoverIntent ** के बाद और अधिक कोड है जिसे इस फ़ंक्शन के साथ शुरू करने के बाद पुन: प्रारंभ करने की आवश्यकता है। –

+0

** किसी और के लिए जो इस समस्या पर ठोकर खाती है: ** होवरइन्टेंट अतिरिक्त प्लगइन की आवश्यकता के बिना ईवेंट प्रतिनिधिमंडल का समर्थन करता है। उदाहरण के लिए नीचे मेरा जवाब देखें। –

0

यह प्राप्त करने का सबसे अच्छा तरीका है जब आप पृष्ठ पर नए तत्व जोड़ते हैं तो एक कस्टम ईवेंट उठाना है। इस घटना के सदस्य तब उचित होवरइन्टेंट प्रारंभिक कॉलर को कॉल कर सकते हैं।

mutation observers के रूप में अधिक देशी समर्थन होगा, हालांकि ब्राउज़र समर्थन वर्तमान में शून्य के बगल में है।

DOMSubtreeModifed ईवेंट के लिए सुनना विश्वसनीय नहीं है और प्रमुख प्रदर्शन समस्याओं का कारण बनता है।

+0

उत्परिवर्तन पर्यवेक्षक समर्थन अब अच्छा दिख रहा है http://caniuse.com/mutationobserver/embed –

0

अपनी jquery संरचना को बदलने का प्रयास करें;

ABC = { 
    init: function() {//all function names goes here 
     ABC.myFunction1(); 
     ABC.myFunction2(); 
     ABC.myFunction3(); 
    }, 
    myFunction1: function() { 
    //code 
    }, 
    myFunction2: function() { 
    //code 
    }, 
    myFunction3: function() { 
    //code 
    }//dont put comma last one 
} 

$(function() { 
    ABC.init();//calls all functions after everything is initialized and ready. 
}); 
9

घटना प्रतिनिधिमंडल के लिए "चयनकर्ता" पैरामीटर का उपयोग करें।

$('#PARENT').hoverIntent({ 
    over: function() { 
     console.log($(this)); 
    }, 
    out: function(){ 
     console.log($(this)); 
    }, 
    selector: '.CHILD' 
}); 

स्रोत: hoverIntent Documentation

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