2012-02-13 18 views
11

जब कोई तत्व बनाया जाता है तो मैं एक ईवेंट ट्रिगर करना चाहता हूं।jQuery ईवेंट जब तत्व बनाया गया है

$(document).on('load','#TB_title',function() { 
    console.log('loaded'); 
}); 

क्या इसका कोई समकक्ष काम करता है?

मैंने देखा कि कुछ लोग लाइवक्विरी का सुझाव देते हैं, लेकिन यह भारी लगता है।

धन्यवाद।

+0

नोट: #TB_title एक आईफ्रेम नहीं है। – rpophessagr

+0

कृपया 'तत्व बनाये जाने पर' विस्तृत करें। क्या आपका मतलब है कि डीओएम में कोई तत्व जोड़ा जाता है? –

+0

हां, मैं मोटीबॉक्स लोड के बाद एक फ़ंक्शन ट्रिगर करने का प्रयास कर रहा हूं। – rpophessagr

उत्तर

3

उपयोग इस प्लग-इन: livequery

या इस लिंक को देख;

How to detect new element creation in jQuery?

+0

iframe don ' शुरुआत से डीओएम में मौजूद नहीं है, इसलिए इसका उपयोग। – rpophessagr

+0

नोट: #TB_title एक आईफ्रेम नहीं है – rpophessagr

+0

आईटी AJAX पूर्ण था जिसने चाल की थी। – rpophessagr

2

आप एक वैश्विक कस्टम घटना को गति प्रदान कर सकते हैं:

$(document).on('load','#TB_title',function() { 
    $.event.trigger('nameOfCustomEvent'); 
}); 

$('#element').bind('nameOfCustomEvent', function(){ 
    console.log(this); 
}); 
+0

ट्रिगर कभी भी आग नहीं लगेगा, यही समस्या ओपी पूछ रही है। –

5

मुझे नहीं लगता कि इस तरह के बात सीधे मौजूद हैं, लेकिन आप DOMSubtreeModified घटना को संभालने और इंतजार कर सकते हैं जब तक आप इस तरह के साथ तत्व मिल सकता है आईडी:

var _elementToFind = "TB_title"; 
var _elementFound = false; 
var _counter = 1; 
$(document).bind("DOMSubtreeModified", function(evt) { 
    if (_elementFound) 
     return; 
    if ($("#" + _elementToFind).length > 0) { 
     alert("element '" + _elementToFind + "' created"); 
     _elementFound = true; 
    } 
}); 

Live test case

नकारात्मकता यह है कि यह ओपेरा और आईई द्वारा 9 - see here से अधिक पूर्ण विवरण समर्थित नहीं है।

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