2015-05-26 12 views
5

क्या यह निर्धारित करने का कोई तरीका है कि दस्तावेज़ में कोई फ़ंक्शन चल रहा है या नहीं?क्या यह निर्धारित करने का कोई तरीका है कि दस्तावेज़ में कोई फ़ंक्शन चल रहा है या नहीं?

मैं कुछ इस तरह मतलब है:

function myfunction() { 
    var isinside = //... what to write here? 
    if (isinside) { 
    } 
} 

(यह भी संभव है मेरी (बहुत शुरुआत) की अवधारणा इष्टतम नहीं है, तो मैं लिखने मैं क्या हासिल करने की कोशिश कर रहा हूँ:

मैं चाहते हैं एक पुन: प्रयोज्य ऑब्जेक्ट बनाएं, जो किसी पृष्ठ के भीतर कई उदाहरणों में तत्काल हो सकता है (उम्मीद है कि प्रति उदाहरण जावास्क्रिप्ट की एक पंक्ति के साथ)। हालांकि इस ऑब्जेक्ट को दस्तावेज़ तैयार करने के लिए क्या करना चाहिए, जैसे ईवेंट हैंडलर संलग्न करना।)

+1

तो क्या आप यह जानने की कोशिश कर रहे हैं कि दस्तावेज़ तैयार ईवेंट अभी तक निकाल दिया गया है या नहीं? –

+0

क्वांटास: अच्छा बिंदु। यदि मैं TrueBlueAussie के समाधान का उपयोग करता हूं, तो मुझे यह पता लगाना होगा कि दस्तावेज़ तैयार है या नहीं। यदि हां, तो मैं async jQuery पर भरोसा नहीं कर सकता। पहले से हैंडलर, इसके बजाय मुझे अपने इनिट कोड को सीधे कॉल करना होगा ... –

+0

वास्तव में आपको जांच करने की आवश्यकता नहीं है, jQuery दस्तावेज़ देखें: ['.ready()' ] (https://api.jquery.com/ready/) –

उत्तर

5

मैं हूं सुनिश्चित नहीं है कि आपको कोई समस्या क्यों है यहाँ? कॉलिंग कोड आमतौर पर एक डोम तैयार हैंडलर में होने के लिए ज़िम्मेदार होता है, न कि कार्यों को।

आप सिर्फ एक डोम तैयार प्रचुरता से किसी भी समारोह के अंदर, यदि आवश्यक हो तो रख सकते हैं, लेकिन यह एक अजीब स्थिति की तरह लगता है तो आप कोड के बाकी दिखाने की जरूरत है।

उदा।

function myfunction() { 
    $(document).ready(function(){ 
     // I am inside DOM ready! 
     // Connect my DOM element events here 
    }); 
    // Do my other non-element stuff here 
} 

या, छोटे: किसी भी समारोह एक डोम तैयार हैंडलर हो सकता है

function myfunction() { 
    $(function(){ 
     // I am inside DOM ready! 
     // Connect my DOM element events here 
    }); 
    // Do my other non-element stuff here 
} 

कुंजी है कि यहाँ डोम तैयार संचालकों डोम के बाद कहा जा सकता है के लिए तैयार है और वे तुरंत आग है।

इसका नकारात्मक पक्ष यह है कि आप वापसी मूल्य पर भरोसा नहीं कर सकते क्योंकि डीओएम तैयार संभावित रूप से async है।

+0

वह जानना चाहता है कि उसके फ़ंक्शन को $ $ (दस्तावेज़) के अंदर कोड से कॉल किया गया था .ready() '। – Barmar

+4

@ बाड़ार: मुझे वह मिलता है, लेकिन वह * सशर्त रूप से * देखभाल क्यों करेगा? :) –

+0

TrueBlueAussie: ठीक है समस्या मेरे शुरुआती ज्ञान है जो वर्तमान में मुझे रचनात्मक रूप से संभावनाओं का उपयोग करने के लिए रोक रहा है :-)। हालांकि आपका समाधान एक नया सवाल उठाता है। अब मुझे पता लगाना है कि तैयार दस्तावेज़ पहले से ही निकाल दिया गया है या नहीं। यदि हां, तो मैं async jQuery पर भरोसा नहीं कर सकता। पहले से हैंडलर, इसके बजाय मुझे अपने इनिट कोड को सीधे कॉल करना होगा ... –

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

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