मुझे यकीन है कि इसके लिए उत्तर बहुत सरल और कुछ हद तक स्पष्ट है लेकिन मैं थोड़ा उलझन में हूं कि नीचे दिया गया कोड कैसे लूपिंग कर रहा है। जैसा कि आप देख सकते हैं कि यह एक साधारण स्लाइड शो के लिए है और जो मुझे समझ में नहीं आ रहा है वह यह है कि स्लाइड शो बिना फ़ोर या WHILE लूप के कैसे घूमता है। मैं देख सकता हूं कि फ़ंक्शन को सेटटाइमआउट द्वारा बुलाया जाता है लेकिन मेरी समझ यह है कि विधि केवल एक बार फ़ंक्शन को कॉल करती है?

<img name="slide" width="400" height="200" />

var i = 0;          // Start Point
var images = [];    // Images Array
var time = 3000;    // Time Between Switch

// Image List
images[0] = "http://lorempixel.com/400/200/animals";
images[1] = "http://lorempixel.com/400/200/sports";
images[2] = "http://lorempixel.com/400/200/food";
images[3] = "http://lorempixel.com/400/200/people";

// Change Image
function changeImg(){
document.slide.src = images[i];

// Check If Index Is Under Max
if(i < images.length - 1){
  // Add 1 to Index
  i++; 
} else { 
    // Reset Back To O
    i = 0;
}

// Run function every x seconds
setTimeout("changeImg()", time);
}

// Run function when page loads  
window.onload=changeImg;
0
Coder 11 फरवरी 2019, 22:36

1 उत्तर

सबसे बढ़िया उत्तर
  1. आप विंडो लोड इवेंट हैंडलर में विधि संलग्न करते हैं
  2. ब्राउज़र विंडो पर लोड ईवेंट को सक्रिय करता है, और changeImg फ़ंक्शन निष्पादित करता है
  3. changeImg चलता है, और अंत में "समय" अवधि के बाद changeImg फ़ंक्शन के लिए एक सेटटाइमआउट निष्पादित करता है
  4. "समय" गुजरता है और सेटटाइमआउट परिवर्तन को बंद कर देता हैImg
  5. changeImg चलता है, और अंत में "समय" अवधि के बाद changeImg फ़ंक्शन के लिए एक सेटटाइमआउट निष्पादित करता है
  6. "समय" गुजरता है और सेटटाइमआउट परिवर्तन को बंद कर देता हैImg
  7. आईएमजी रन बदलें, ...

जैसे, रिकर्सन के माध्यम से आप तर्क का अप्रत्यक्ष लूप बना रहे हैं।

2
Taplar 11 फरवरी 2019, 19:51