2012-04-16 10 views
0

こんにちは私は、ここのようなものをクリックする方法があるかどうか疑問に思っていました。画像の1つがクリックされると、その変数のidを変数に代入してからif文を実行して、変数を使用した後に他のすべてのボックスをフェードアウトしてフェードインできるようにします。それ以外の場合は、IDをクリックすることで6つの別個の機能を作らなければならないでしょう。これは多くのコードになります これはレプリケートされている可能性を考慮して、このコードを最適化する最適な方法があるかどうかはわかりません。回私は基本的に1つにそれらをマージする方法が欲しい。私はしばらくの間、このを見てきたけど、多分別の視点を取得し、それを把握するように見えるカント一切の援助に感謝することはオブジェクトIDを変数にドラッグして最適化するjqueryで

jQuery(function(){ 
    jQuery(".catalignleft").click(function() { 


     function complete() { 
      jQuery(".alignleft"); 
     } 

     if(status == 1) { 
      jQuery("#box1").fadeOut(); 
      jQuery("#box2").fadeOut(); 
      jQuery("#box3").fadeOut(); 
      jQuery("#box4").fadeOut(); 
      jQuery("#box5").fadeOut(); 
      jQuery("#box6").fadeOut(); 
      jQuery("#box1").fadeIn(); 
      status--; 
     } else{ 
     jQuery("#box1").fadeIn(1600, "linear", complete); 
status++; 
} 



    }); 

    jQuery("#btn2").click(function() { 
    jQuery("#box1").fadeOut(); 

    jQuery("#log").empty(); 
    }); 
    jQuery(".blocked a").click(function(event) { 
    event.preventDefault(); 
    jQuery('<div/>') 
}); 


    jQuery("#btn2").click(function() { 

    jQuery("#box2").fadeOut(); 
    jQuery("#log").empty(); 
    }); 
}); 

答えて

1

はIDセレクタの代わりにクラスセレクタを使用し、その中で$(this).fadeInを置くのに役立ちます

$(".box").click(function() { 
    $(".box").fadeOut("slow", function() { 
     $(this).fadeIn(); 
    }); 
}); 

(すべてのボックスが "ボックス" のクラスを持っていると仮定すると):

<div class="box"></div> 

このような fadeOutコールバック、

また、jQuery(...)を使用する理由はありません。 $(...)に短縮して、入力を省くことができます。

+0

私はWordPressで許可していません:D しかし、それを理解しようとしていて、私はこれを知っていましたが、それほど多くのおかげでそれを使用するように私には起こりませんでした –

1

エリートが答えたところで、(jQueryを使用していなくても)を使って、現在のオブジェクト(この場合はクリックされたオブジェクト)を参照できます。

+0

Hey Zim、私これはコメントに属していると思う。 =) –

+0

真。私はあなたの記事の下にコメントとして追加することはできません(質問の下にも)。たぶん私はもう少し評判が必要でしょうか?私はそれを検討します。ご意見ありがとうございます :) – Enrico

関連する問題