2016-04-18 28 views
0

私はこの1.5秒のタイマーの後に関数を呼び出すJavaScriptを持っています。 Chromeでは、うまく動作します。 Firefoxでは、私は参照エラーを取得します:accessTransitionは定義されていません。なぜこれが当てはまるのかについての説明はありますか?参照エラー:関数が定義されていません - Firefox

$('#next-btn').click(function(e) { 
    window.setTimeout(accessTransition, 1500); 

    function accessTransition() 
    { 
     $('.fact-intro-1').slideUp(1000); 
     $('.fact-text-1').css('display', 'inline-block'); 
    } 
} 
+2

なぜイベントハンドラの内部で 'accessTransition'関数を定義するのですか? – j08691

+2

潜在的に巻き上げの問題? – ste2425

+2

クレイジーなアイデアですが、 'setTimeout()'コールをあなたが渡している関数を定義しているところに移動しようとしましたか?あなたはそれをあなたのために持ち上げるためにChromeに頼っています。 – Antiga

答えて

1
function accessTransition() 
{ 
    $('.fact-intro-1').slideUp(1000); 
    $('.fact-text-1').css('display', 'inline-block'); 
} 

$('#next-btn').click(function(e) { 
    window.setTimeout(accessTransition, 1500); 
} 

あなたは、イベントハンドラ外の関数を定義する必要があります。

2

てみて:

function accessTransition() 
    { 
     $('.fact-intro-1').slideUp(1000); 
     $('.fact-text-1').css('display', 'inline-block'); 
    } 

$('#next-btn').click(function(e) { 
    window.setTimeout(accessTransition, 1500); 

} 

私はそれが(javascript関数ベースのスコープを持つ)イベントハンドラ関数にネストされているため、タイムアウトがこの機能を得ることができないと思います。

関連する問題