2017-04-13 13 views
-1

クロムのこのコードは順番に起こりますが、サファリで起こります。同じことが起こり、アニメーションを表示しないでください(サファリでも同じことを示します)クロムとサファリでjavascriptがどのように起こるか

+2

1は、ここにミリ秒を意味していない二...多分あなたは...ちょうど疑問に思っ秒 '1000 'か何かをしたいです!そして、あなたがtimeoutの後に 'window.open'を望むなら、setTimeoutの' function 'の中にそれを入れておく必要があります... –

+1

'setTimeout'はミリ秒単位で、' 1000ms = 1s' 。最初に修正するか、遅れがある場合は気付かないでしょう。 – Oen44

+0

私の問題は、私のprobが最初に実行の順番が大きい時ではなく、遅延が1msしかないので、 – Arash

答えて

0
window.onload = function() { 
    $(window).on("click", ".small1", function() { 
    me = this; 
    setTimeout(function() { 
     $(me).addClass("big"); 
    }, 1); 
    window.open("http://google.com", "_self"); 
    }); 

のsetTimeoutは、パラメータとしてミリ秒を要するとしない秒数here、のsetTimeout約セクション

のsetTimeout()読み取り:関数を呼び出すか、指定されたミリ秒数後に式を評価

...さらに、window.open(..がタイムアウトの終了後に発生するようにするには、setTimeoutの内部にも入れなければなりません。

タイムアウトは、setTimeout内の機能にのみ有効です。 setTimeoutステートメントの後のものはすべて非同期に実行されるため、setTimeout内の関数が起動/終了する前にwindow.openが実行されます。

例えば、以下のようにタイムアウトを1秒に設定し、タイムアウトが切れた後にクラスを変更してウィンドウを開く必要があります。以下

window.onload = function() { 
    $(window).on("click", ".small1", function() { 
    me = this; 
    $(me).addClass("big"); // First gets big, considering that the css has the desired effect in Safari. 
    setTimeout(function() { 
     window.open("http://google.com", "_self"); // Executes now after timeout finishes. 
    }, 1000); // Timeout of one second. 
    }); 

サンプルスニペット:

$(".small").on("click", function() { 
 
    me = this; 
 
    $(me).addClass("big"); 
 
    setTimeout(function(){ 
 
    window.open("http://google.com", "_self");},1000); 
 
});
.big { 
 
    font-size: 150%; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="small">myLink</div>

+0

私の目標は、div要素が大きくなってから開いて にリンクすることですが、これはchromeでのみ起こります。サファリはこれをしてリンクを開きません。 – Arash

+0

あなたのクラスを適用してもサファリをチェックインしないと、クリックした '' .small1 ''オブジェクトに何らかの影響があります。その後、' setTimeout'から 'addClass'を移動して' window.open '' setTimeout'の中で...また、あなたのCSSは、あなたがsafariのクラスを追加しようとしている要素には何の影響も与えません。 –

+0

私の問題を解決していただきありがとうございます:) – Arash

関連する問題