2013-10-14 17 views
5

में बबल नहीं है मेरे पास एक डोम तत्व है जो अभी तक डोम में नहीं है और मैं एक डोम ईवेंट ट्रिगर करना चाहता हूं।डीओएम घटना ऑफ-डीओएम तत्व

घटना बुलबुला नहीं है। लेकिन jQuery के साथ, यह करता है। जो मेरे लिए अजीब लगता है।

यह व्यवहार सफारी और क्रोम में प्रतिलिपि प्रस्तुत करने योग्य है (Firefox में इसे सही ढंग से काम करता है - घटना अप बुलबुले):

var log = function(event) {console.log('Clicked on div', event);}; 

// Create DOM element. 
var div = document.createElement('div'); 
// Don't append it to DOM. Though it works if we append it there. 
// document.body.appendChild(div); 
div.innerHTML = '<a id="outer"><span class="inner">yo</span></a>'; 

// Does not work. 
div.addEventListener('click', log); 
div.querySelector('#outer').click(); 

// Works!? 
$(div).on('click', log); 
$(div).find('#outer').click(); 

jQuery रणनीति बुदबुदाती कस्टम घटना को लागू करता है? क्या यह ब्राउज़र है जो यहां गलत हैं?

संपादित करें: बनाया a bug

+0

फ़ायरफ़ॉक्स में मेरे लिए काम करता है: http://jsfiddle.net/DLmha/ – user2736012

+0

जैसा कि मैंने पोस्ट में उल्लेख किया है, यह फ़ायरफ़ॉक्स में अच्छा है। –

+0

हे, हाँ, क्षमा करें। याद किया कि। – user2736012

उत्तर

0

मुझे लगता है कि इसके साथ

$(div).find('#outer').click(); 

ध्यान दें कि अगर आप

$("#outer").click(); 

के साथ जाने के यह रूप में अच्छी तरह से काम नहीं करता कुछ करने के लिए है। तो मेरी शर्त यह होगी कि जेक्यू डीओएम के साथ बुलबुले के बजाय, div तत्व के लिए क्लिक को ट्रिगर करता है।

+0

आप $ ('# outer') का उपयोग कैसे कर रहे हैं, जब div DOM में नहीं है ...? –

+0

क्या आप $ ('# outer') से कुछ भी प्राप्त कर सकते हैं? –

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