2009-10-22 17 views
5

मेरे पास मेरे वेबपृष्ठ पर कुछ जावास्क्रिप्ट कोड है जो पृष्ठ पर कुछ divs लोड कर रहा है। मैं प्रत्येक div को onmouseenter, और onmouseleave ईवेंट हैंडलर भी जोड़ना चाहता हूं। मैं इन संचालकों को जोड़ने के लिए jQuery का उपयोग कर रहा है, लेकिन मैं त्रुटि मिलती है:jQuery, Uncaught TypeError

var newItem = document.createElement('div'); 
newItem.innerHTML = results[i]; 
newItem.setAttribute("id", "resultDiv_" + i.toString()); 
dropDown.appendChild(newItem); 

//Error on next line... 
$("resultDiv_" + i.toString()).bind("mouseenter", function() { 
    $("resultDiv_" + i.toString()).css({ 'background-color': 'blue' }); 
}); 

किसी को भी किसी भी विचार क्यों मैं हूँ है:

"Property '$' of object [object DOMWindow] is not a function"

मेरे कोड इस तरह दिखता है, यह पाश के लिए एक में है यह त्रुटि हो रही है, या यहां तक ​​कि त्रुटि का क्या मतलब है?

+0

बस उत्सुक, आपने $ (jquery) का उपयोग करने वाले कोड के इस ब्लॉक को कहां रखा? – jerjer

+0

यह एक ऐसे फ़ंक्शन के अंदर है जो वेबमाउथ रिटर्निंग परिणाम [] ... के परिणामस्वरूप आग लगती है जिसे टेक्स्टबॉक्स में एक कीप ईवेंट के परिणामस्वरूप शुरू किया जाता है ...: D – Pavol

+0

क्या आप अन्य सभी जावास्क्रिप्ट (फ्रेमवर्क शायद) का उपयोग करते हैं , आप jquery.noconflict – jerjer

उत्तर

4

क्या आप वाकई jQuery को ठीक से लोड कर रहे हैं? क्या यह एक और जावास्क्रिप्ट पुस्तकालय के साथ एक संघर्ष हो सकता है?

+1

मदद के लिए धन्यवाद, पता चला कि मैं jQuery को ठीक से लोड नहीं कर रहा था :( – Pavol

+2

अन्य जावास्क्रिप्ट पुस्तकालयों के साथ संघर्ष के बारे में बात करते हुए ... क्रोम में कुछ एडॉन्स अतिरिक्त जावास्क्रिप्ट लोड करते हैं ... यदि आप क्रोम चला रहे हैं तो यह आपके एडॉन्स को बंद करने में मदद करता है और इसे फिर से प्रयास करें। – redconservatory

+0

मोड़ने वाले एडॉन्स ने मेरे लिए काम किया, धन्यवाद – merveotesi

0

यह कोशिश करने के बारे में क्या?

 var newItem = document.createElement('div'); 
     newItem.innerHTML = results[i]; 
     newItem.setAttribute("id", "resultDiv_" + i.toString()); 
     dropDown.appendChild(newItem); 

     //Error on next line... 
     $("resultDiv_" + i.toString()).mouseenter(function() { 
      $("resultDiv_" + i.toString()).css({ 'background-color': 'blue' }); 
     }); 

या सुनिश्चित करें कि $("resultDiv_" + i.toString())null नहीं है। तत्व का निरीक्षण करने के लिए फायरबग का प्रयोग करें।

9

$ की सभी घटनाओं को jQuery के साथ बदलने का प्रयास करें।

इसके अलावा चयनकर्ता $("resultDiv_" + i.toString()) किसी भी तत्व को वापस नहीं करेगा। आप शायद का मतलब: $("#resultDiv_" + i.toString())

और अंत में यकीन है कि यह कोड निष्पादित किया जाता है जब डोम यानी अंदर तैयार है:

jQuery(function() { 
    // Put your code here 
}); 
+0

सुझाव के लिए धन्यवाद, मैंने $ jQuery के साथ $ को प्रतिस्थापित किया है, लेकिन मुझे अभी भी '$' के बजाय 'jQuery' के साथ त्रुटि मिलती है। ने # – Pavol

+0

भी जोड़ा, यह मेरे लिए समस्या तय करता है। हालांकि, मैं नहीं करता कोई अन्य पुस्तकालय लोड नहीं है ... मुझे यह त्रुटि क्यों मिल रही है? – trusktr

+0

धन्यवाद, यह मेरी समस्या का समाधान करता है। भगवान आपको आशीर्वाद देते हैं। –

0

साथ ही आप इस कोशिश कर सकते हैं:

var newItem = jQuery('<div id="' + "resultDiv_" + i.toString() + '">+ results[i] + '</div'); 
    jQuery(dropDown).append(newItem); 
    //Error on next line... 
    newItem.mouseenter(function(){ 
     jQuery(this).css('background-color', 'blue'); 
    }); 

या शायद jQuery। कोई कॉन्फ्लिक्ट इसे हल नहीं करेगा।

1
(function ($) { 
    // All your code here 
})(jQuery); 

इससे मेरे लिए समस्या ठीक हुई।

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