两个函数在jquery中同步运行

时间:2012-11-28 19:49:41

标签: jquery image function setinterval synchronize

我编写了一个模拟图像交叉淡入淡出并导致文本更改的脚本。这是现在的代码:

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');
}

如果我更改焦点而不是文本更改,则图像更改不再同步...

为避免此问题,我需要更改哪些内容?

1 个答案:

答案 0 :(得分:0)

如果没有异步,这两个函数不能同时运行。您可以做的最好的事情就是使用两次超时,并设置很短的时间:

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

这样两个函数同时执行。

但是,在你的情况下,如果你只使用一个函数或者让第一个函数调用另一个函数,那会不会更简单:

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