2011-02-10 7 views
1

ページ上でフェードインまたはフェードアウトするテキストを(連続的に)取得する必要がありますが、互換性の問題が発生しています。ここに私が使用しているコードはあります:jQuery/Javascript:テキストのフェードイン/アウト

function effectFadeIn(classname) { 
    $("#id").fadeOut(800).fadeIn(800, effectFadeOut(classname)) 
    } 
    function effectFadeOut(classname) { 
    $("#id").fadeIn(800).fadeOut(800, effectFadeIn(classname)); 
    } 
$(document).ready(function() { effectFadeIn('box');}); 

どのようにこれを別の方法を考えていますか?またはI.E8で上記を使用して動作させるか?

+2

カスタム機能に遅延機能を連鎖させるのはなぜですか? –

+1

このコードは実際には意味がありません。何を達成しようとしていますか? – Exelian

+0

私はちょうどテストしていた遅れを無視します。投稿を編集しました。私は何を達成しようとしていますか?私はテキストをページ上で連続的にフェードインまたはフェードインする必要があります。 – izip

答えて

1

これは、あなたが望む確かです:

function effectFadeIn(classname) { 
    $("." + classname).fadeOut(800).fadeIn(800, function() {effectFadeOut(classname)}) 
} 
function effectFadeOut(classname) { 
    $("." + classname).fadeIn(800).fadeOut(800, function() {effectFadeIn(classname)})); 
} 
$(document).ready(function() { effectFadeIn('box');}); 

の引数で関数を呼び出すには、匿名関数に入れたいです。

これを行うコード効率的な方法ははるかにありますが、しかし、これはあなたのコードが動作するようになります。

+0

もっと効率的な方法は何でしょうか?それは一定でなければなりません。一度フェードインとフェードアウトするだけではありません。 – izip

0

FadeInとfadeOutの2番目のパラメータは、関数への参照をとり、直接実行しないため、匿名関数を作成し、関数を呼び出すことができます。隠されたとして


hello 

$(document).ready(function() { 
    effectFadeIn('box');    
}); 

function effectFadeIn(classname) { 
     $("."+ classname).fadeOut(800).fadeIn(800,function(){ 
      effectFadeOut(classname) 
     }); 
    } 
    function effectFadeOut(classname) { 
     $("."+ classname).fadeIn(800).fadeOut(800,function(){ 
      effectFadeIn(classname) 
     }); 
    } 

+0

ありがとうございますが、私はまだI.E.に問題があります。 – izip

0

まず非表示にあなたがフェードインするすべての要素。

jQuery(document).ready(function() { 
    jQuery('.box').hide(); 
    elementFadeIn('box'); 
}); 

今ボックスが起動し、それはループを初期化します。

+0

フェードインとフェードインを連続して行う必要があります。 – izip