2011-01-10 9 views
2

こんにちは皆さん(最初の投稿!)。私はJQueryとJavascript初心者です。JQueryの.show()の最初のマウスコールでアニメーションが表示されない

私は、次のWebサイトに取り組んでいます:http://www.beautifulinteractions.com/lombo/

私はjQueryのセレクタとメソッドを呼び出す自分自身の機能を持つカスタム.jsファイルを作りました。私はtagからstartup()関数を呼び出し、2つのdiv(メニューとフッター)が適切な方法で入ってくる。

しかし、最初の(そして最初の)メニュー項目をクリックすると(onclick = "javascript:showContent(URL)"経由で.show()呼び出しがトリガーされます)、ターゲットdivは視認可能になりますが、それはちょうど現れる。たびにアニメーションがうまく動作するメニュー項目をクリックします。

私は間違っていますか?
ありがとうございます。


millis = 600; 

function startup() { 
    $('#hiddenMenu').show(millis, foo()); 
    $('#footer').show(millis, foo()); 
    //$(""+"#hiddenContent"+"").show('slow', foo()); 
} 

function showContent(URL) { 
    $('#hiddenContent').hide(millis, function() { 
             $('#hiddenContent').load(URL); 
             $('#hiddenContent').show(millis, foo()); 
    }); 

} 
function hideContent() { 
    $('#hiddenContent').hide(millis, foo()); 
} 

function foo() { 
    //Do-Nothing 
}` 
+0

を動作しません、あなたは、パラメータとして関数を渡すために参照が必要。あなたは、ファンクションなしで関数名を使うだけでそれを行うことができます。 – jAndy

+0

あなたのヒントをありがとう! – Jacoscaz

答えて

1

以下でごshowContent機能を交換してみてください:

function showContent(URL) { 
    $('#hiddenContent').hide(millis, function() { 
     $(this).load(URL, function() { 
      $(this).show(millis, foo()); 
     }); 
    }); 
} 

それは、show行が実行される前に$.load呼び出しが完了しないため、事実である可能性があります。 .show$.loadのコールバックに移動すると、そのトリックが発生する可能性があります。

+0

動作しません - 私はまったく同じ動作をします。 – Jacoscaz

+0

@Jacopo - '$(this).show(millis、foo);' – karim79

+0

.load()コールバックに.show()を追加すると、そのトリックが実行されました。どうもありがとうございました。私はすべてこれを気にする。 – Jacoscaz

0

すでに出力をstartup()機能から取得しようとしましたか?コンソールやアラートでスクリプトが実行されているかどうかを知ることができます。あなたはあなたがこのような何かを行う必要がありますjavascript:

を使用する必要があなたはいけないonclickを使用した場合

と少し先端が..:

onclick="startup();" 

は十分なはずです!

EDIT:

はこれにあなたVARミリ秒を作る:

var millis = 600; 

VARのないスクリプトがちょうど追記としてIE

+0

貴重なヒントをありがとうございます。 startup()は、2番目の呼び出しからのshowContent(URL)とまったく同じように動作します。 – Jacoscaz

関連する問題