2009-12-06 12 views
26

एक php फ़ाइल में मैंने निम्नलिखित js.php फ़ाइल को शामिल करने के लिए include का उपयोग किया है और इससे पहले मैंने jquery फ़ाइल शामिल की है।

<script type="text/javascript"> 

$(document).ready(function(){ 
    alert("hello"); 
}); 
</script> 

लेकिन यह काम नहीं करता है। क्यूं कर? जब मैं $ (दस्तावेज़) छोड़ देता हूं। पहले से ही यह काम करता है।

लेकिन मुझे अंदर jquery कोड चाहिए। गलत क्या है?

+2

क्या आप अपना PHP कोड भी पोस्ट कर सकते हैं? – SimonDever

+1

आपको प्राप्त त्रुटियों को पोस्ट करें।यदि आप फ़ायरफ़ॉक्स का उपयोग कर रहे हैं तो त्रुटि कंसोल को 'टूल्स> त्रुटि कंसोल' के माध्यम से एक्सेस किया जा सकता है – Yacoby

+0

क्या आप किसी अन्य जावास्क्रिप्ट फ्रेमवर्क का उपयोग कर रहे हैं? क्या आपकी jquery फ़ाइल का पथ सही है? – nowk

उत्तर

30

आपके द्वारा जो कहा गया है, उसके आधार पर सबसे अधिक संभावित उत्तर यह है कि कोर jQuery फ़ाइल वास्तव में पृष्ठ में सही ढंग से शामिल नहीं है।

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 

काफी संभावनाएँ हैं इस लापता या गलत टाइप किया जाता है: आप की तरह कुछ की जरूरत है।

+1

मैंने यह वही सटीक प्रश्न कई बार देखा है - और यह हमेशा इस अवसर की तरह jQuery

4
  1. जांचें कि jQuery सही तरीके से लोड हो गया है या नहीं।
  2. ब्राउज़र की प्रगति पट्टी को देखें: यह कुछ काउंटर लोड हो रहा है और दस्तावेज़ लोड होने तक तैयार नहीं है: यह तब होता है जब बाहरी संसाधन धीमे होते हैं।
  3. सिर्फ मामले में $(function(){ alert(...); }); का प्रयास करें ... आप जे एस त्रुटियों इस ऑनलोड बंधन से पहले है
  4. चेक या नहीं। इसे जांचने के लिए फ़ायरफ़ॉक्स की फ़ायरबग प्लगइन का उपयोग करें।
+0

फ़ायरबग का कहना है कि \t \t $ (document) .ready (function() { परिभाषित नहीं है ... यह मेरी jQuery फ़ाइल के साथ कुछ गलत है? –

+0

आप Mootools का उपयोग कर रहे हैं? ... यदि हां, तो सुनिश्चित करें कि आपके Jquery संगतता – Mottie

+0

के लिए सेट है यदि यह $ (दस्तावेज़) कहता है .... एक ऐसा फ़ंक्शन नहीं है जिसका अर्थ है कि 1) दूसरी लाइब्रेरी $ कैप्चर कर रही है, या jQuery ठीक से लोड नहीं हुआ है। अगली बार – helloandre

24

एक अन्य कारण है कि चुपचाप असफल हो जायेगी, और सभी शेष कॉलबैक कभी नहीं कहा जाता है:

$(document).ready(null); 

तो देखें कि क्या आप चर या सिंटैक्स त्रुटि है कि रिक्त वापसी की है। इस तरह:

$(document).ready(function($){}(jQuery)); 

सूचना है कि इसके बाद के संस्करण समारोह तुरन्त कहा जाता है और अपरिभाषित दिया जाता है।

+0

हालिया jQuery के साथ ऐसा प्रतीत नहीं होता है: http://jsfiddle.net/0g5ae8y3/ – Tgr

+0

उदाहरण के लिए, मैंने पहले अपरिभाषित चर का उपयोग '$() में प्रत्येक चयनकर्ता इनपुट के रूप में किया था। प्रत्येक लूप कॉलबैक। –

-3

$ (दस्तावेज़) के बजाय .ready (function() {...});

कोशिश

$ (document) .ready (एबीसी());

समारोह एबीसी() { .... }

मेरे लिए काम किया अपने आप स्थानों में से बहुत खोज की, लेकिन कोई समाधान नहीं मिल सकता है। इसे यादृच्छिक रूप से कोशिश की और काम किया !!

+6

जब तक आपका एबीसी फ़ंक्शन कोई फ़ंक्शन नहीं देता है, यह कोड आपके द्वारा किए गए कार्यों को नहीं करता है। एबीसी निष्पादित करेगा और वापसी मूल्य $ (दस्तावेज़) को भेज देगा .ready()। यदि वापसी मूल्य शून्य है, तो आप दूसरों के लिए समस्याएं पैदा कर सकते हैं जैसे मैंने अपने उत्तर में समझाया। आप भी एबीसी() कर सकते हैं; या (फ़ंक्शन() {...})(); – gregers

-4

मुझे ऐसी समस्या थी, बस <script type="text/javascript"> से <script type="javascript"> और सभी समस्याएं चली गईं!

1

मुझे भी इसी तरह की समस्या का सामना करना पड़ा और मैंने यही किया।

सुनिश्चित करें कि document.ready के बाद कॉलबैक फ़ंक्शन अपने जावास्क्रिप्ट फ़ाइल में परिभाषित किया गया है रखा गया है।

यहां, init अभी तक परिभाषित नहीं किया गया है जब दस्तावेज़। पहले से पार्स किया जा रहा है।

//won't work 
$(document).ready(init); 
var init = function() { 
    console.log('init not called'); 
} 

सही विधि:

//Works 
var init = function() { 
    console.log('document is ready'); 
} 
$(document).ready(init); 

सूचना है कि $ (document) .ready (init) अंत में रखा गया है।

3

इसके अलावा बाहर देखने आप कैसे परिभाषित jQuery टैग शामिल हैं। ऐसा लगता है कि टैग को दो अलग टैग के साथ खोलने और बंद करने की आवश्यकता है। यह बंद करने के साथ एक टैग का उपयोग करते हुए काम लगता है नहीं करने के लिए:

काम करता है:

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"></script> 

काम नहीं करता:

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"/> 
1

हाँ, मैं देखा है कि कभी कभी उस के साथ समस्या है, तो मैं सुरक्षित लिखा था इसके लिए समाधान, जो इस समस्या को ठीक करता है।

$(function() {alert('go')}) 

और यह हमेशा आग चेतावनी:

// jquery plugin 'jquery.ready.fix.js' 
// @author Szymon Działowski 
;(function ($) { 
    $.fn.ready.old || $(function (r) { 
     r = $.fn.ready; 
     $.fn.ready = function (fn) { $.isReady ? fn() : r(fn); }; 
     $.fn.ready.old = r; 
    }); 
})(jQuery); 

कि तुम्हारे जाने के बाद कोड चला सकते हैं।

पुनश्च: http://www.paulirish.com/2010/duck-punching-with-jquery/

1

Zakas 'The art of throwing JavaScript errors, मैं जे एस मुद्दों पाने के लिए एक दृष्टिकोण के रूप जावास्क्रिप्ट में अपने ही त्रुटियों फेंकने लगे के बाद: यह एक तकनीक के बारे में अधिक "बतख पंचिंग" कहा जाता है।

लेकिन दुर्भाग्य से इस दृष्टिकोण ने साइट के असंबद्ध हिस्सों के लिए jQuery तैयार() फ़ंक्शन चुपचाप विफल होने के कारण शुरू किया। :(

मुझे पता चला कि निम्नलिखित अलग हैं:

throw new Error() 

console.error() 

तो से अलग है, मैं console.error() का उपयोग करना शुरू कर दिया, और मैं अभी भी लाल हाइलाइटिंग मिला कंसोल में

1

जांचने का एक और बिंदु: हो सकता है कि आपके पास आपके प्रोग्राम में एक PHP त्रुटि हो। एक PHP घातक त्रुटि स्क्रिप्ट से बाहर निकलती है और $(document).ready कभी निष्पादित नहीं की जाएगी।

आपकी सर्वर सेटिंग्स या आपके सीएसएस पर निर्भर करता है कि आप घातक त्रुटि संदेश नहीं देख सकते हैं।

0

मेरे मामले में document.ready को कॉल नहीं किया गया था क्योंकि एक HTML फॉर्म अजाक्स अनुरोध द्वारा सर्वर पर भेजा गया था और दस्तावेज़ का केवल एक हिस्सा प्राप्त किया गया था - और दस्तावेज तैयार AJAX अनुरोध के बाद नहीं कहा जाता है।

कुछ बटन जो कि बात यह है कि पुनः लोड करने के लिए घटनाओं .click() एटीसी आबद्ध नहीं था .. था अब और क्योंकि इन बटनों नए थे और इन घटनाओं में से बाध्यकारी दस्तावेज तैयार केवल पहली बार के दौरान बुलाया गया था पर थे परिणाम में - के लिए नहीं AJAX।

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

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