2017-11-20 18 views
0

コードがクリックイベント内にあり、js命令がすべて終了するまで実行されません。JavascriptコードはChromeで動作しますが、IEではすべての命令の最後に実行されます

$('#elementID').off('click').on('click', function() 
{ 
    $('#objToChange').css({ 'color': 'red', 'font-size': '150%' }); 
    someFuction(); 
    anotherFunction(); 
}); 

この機能はFirefoxとChromeでは完璧ですが、IEでは機能しません。私はホールコードの実行終了時に彼が色を変更したことを意味し、jqueryの変更を行った瞬間に変更が行われる必要があります。

答えて

0

これは、ブラウザごとにレンダリング方法が異なる点に過ぎません。あなたは、CSSの更新とコードの残りの部分との間のわずかな遅延を追加した場合、それは問題ないはず...

$('#elementID').off('click').on('click', function() { 
    $('#objToChange').css({ 'color': 'red', 'font-size': '150%' }); 

    // wrap the rest of the code in a setTimeout with a small delay 
    setTimeout(function() { 
     someFuction(); 
     anotherFunction(); 
    }, 10); 
}); 

注:一部の人々は、ゼロの遅延でsetTimeoutが十分であると言うが、私が見てきました失敗すると、常に少なくとも1msの遅延を使用します。 10msは十分ですが、まだ目に見えるポーズはありません。

関連する問題