1

次のコードがあります。私がやろうとしているものの孤立したバージョンである、私が始めたフィドル。

var height;
var count = 0;

var setHeight = setInterval(function() {   
    count++;
    console.log('count');
    if ( count  > 10)
    {
        console.log('done');
        height = 20;
        clearInterval(setHeight);   
    }
},100);

console.log('this is the height -> ' + height);

私が期待する (または実現したい) ことは、値がheight = 20;console.log に出力されることです。最終的な目標は、間隔がクリアされた後に setInterval 関数から変数を取得することです。

今、私は..これは高さです->未定義

フィドル:

http://jsfiddle.net/GNvG6/8/

私が達成しようとしていること:

したがって、根本的な問題はこれです。一部の要素が DOM にロードされる前に実行される関数があります。だから私がしようとしているのは、その要素のインスタンスが存在するまで関数を実行し続けることです。それが発生したら、その要素の高さを取得し、それを別の変数に渡すつもりです。これで問題が解決するかどうかはわかりませんが、これを機能させることができれば、少なくともテストできると思います。

4

3 に答える 3

1

フィドルのデモ

var height = 0;                                        // initial value
var count = 0;

var setHeight = setInterval(function() {   
    count++;
    console.log('count and height is still:'+ height); // height is always 0
    if ( count  > 10){
        height = 20;
        console.log('done and height is:'+ height);    // height is finally 20
        clearInterval(setHeight);           
    }
},100);
于 2013-09-09T22:19:49.220 に答える
1
var height;
var count = 0;

var setHeight = setInterval(function() {   
    count++;
    console.log('count');
    if ( count  > 10)
    {
        console.log('done');
        height = 20;
        reportHeight(height);
        clearInterval(setHeight);   
    }
},100);

function reportHeight(height){
    console.log('this is the height -> ' + height);
}

コンソール出力は

(11) count
done
this is the height -> 20 
于 2013-09-09T22:25:45.390 に答える