Jquery, jquery, image, function, setinterval, सिंक्रनाइज़ करने में दो फ़ंक्शन सिंक्रनाइज़ रूप से चलते हैं

मैंने एक ऐसी लिपि लिखी जो छवियों के एक क्रॉसफैड को अनुकरण करती है और पाठ में बदलाव का कारण बनती है। यह कोड अब है:

var teller = 0;
var html = new Array();
var link = new Array();
html[0] = "Some text";
link[0] = "link1.html";
html[1] = "Some other text";
link[1] = "link2.html";
function beeldwissel() {
tekstwissel();
var $actief = $("#overvloeier IMG.actief");
if ( $actief.length == 0 ) $actief = $("#overvloeier IMG:last");
var $next =  $actief.next().length ? $actief.next() : $("#overvloeier IMG:first");
$actief.addClass("laatst-actief");
$next.css({opacity: 0.0})
.addClass("actief")
.animate({opacity: 1.0}, 1000, function() {
$actief.removeClass("actief laatst-actief");});
}

$(function() {setInterval( "beeldwissel()", 5000 );}); // 5000 = pauze van 5 seconden

function tekstwissel() {
teller++;
if (teller >= html.length) {
teller = 0;
}
document.getElementById("tel").value = teller;
document.getElementById("tekst").innerHTML = html[teller];
}

function doLink() {
var tel = document.getElementById("tel").value;
window.open(link[tel],"_blank");
}

यदि मैं पाठ के परिवर्तन और छवि के परिवर्तन की तुलना में फोकस बदलता हूं तो अब सिंक्रनाइज़ नहीं किया गया है ...

इस समस्या से बचने के लिए मुझे क्या बदलना है?

उत्तर:

जवाब के लिए 0 № 1

दो फ़ंक्शंस एक ही समय में एसिंक के बिना नहीं चल सकते हैं। सबसे अच्छा आप दो बार टाइमआउट का उपयोग बहुत कम समय के साथ कर सकते हैं:

setTimeout(function() { /* code... */ },1);
setTimeout(function() { /* code... */ },1);

इस तरह दो कार्य एक ही समय में निष्पादित होते हैं।

हालांकि, आपके मामले में, यह आसान नहीं होगा अगर आपने अभी एक फ़ंक्शन का उपयोग किया है या पहले व्यक्ति को दूसरा कॉल किया है:

function trigger() {
// Do image fading here...
// Text manipulation here...
}

संबंधित सवाल
सबसे लोकप्रिय