मैं जे एस पर एक नौसिखिया हूँ। मैं एक ऐसा फ़ंक्शन लिखना चाहता हूं जो शरीर को लगभग 5 सेकंड के लिए लाल और सफेद के बीच पृष्ठभूमि रंग को वैकल्पिक बना दे। मैंने यह कोड लिखा है:

var x = 1;

function alarma() {
    setInterval(cambio, 200);

    function cambio() {
        if (x == 1) {
            $("body").css("background-color", "red");
            x = 2;
        }
        else {
            $("body").css("background-color", "white");
            x = 1;
        }
    }
}

मैं कोड का परीक्षण करता हूं और यह काम करता है, लेकिन मुझे नहीं पता कि फ़ंक्शन को केवल 5 सेकंड के लिए निष्पादित करने के लिए कैसे करना है।

मैं इसे कैसे ठीक कर सकता हूं इसके बारे में कोई विचार?

धन्यवाद!

-2
Matias Calzada 24 नवम्बर 2019, 04:23

1 उत्तर

सबसे बढ़िया उत्तर

आप निम्न कोड का उपयोग कर सकते हैं, जो आपके अंतराल को एक interval चर में निर्दिष्ट करता है और फिर उस अंतराल को 5 सेकंड के बाद साफ़ करने के लिए setTimeout का उपयोग करता है।

function alarma() {
  const interval = setInterval(cambio, 200);
  
  setTimeout(() => {
    clearInterval(interval);
  }, 5000);
  
  let x = 1;
  
  function cambio() {
    if (x == 1) {
      $("body").css("background-color", "red");
      x = 2;
    } else {
      $("body").css("background-color", "white");
      x = 1;
    }
  }
}

alarma();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
1
Nick 24 नवम्बर 2019, 05:09