0

こんにちは、ここのように何かをクリックする方法があるかどうか疑問に思っていました。画像の 1 つがクリックされたときに、その id を変数に変換し、そこから if ステートメントを実行できるようにしたいと考えていました。変数を使用した後、他のすべてのボックスをフェードアウトし、フェードインできること。それ以外の場合は、ID をクリックして 6 つの個別の関数を作成する必要があります。これにより、より多くのコードが作成されます。これは最適化の方法だと思います。これが 6 回複製される可能性があることを考慮して、このコードを最適化するより良い方法があるかどうかはわかりません。基本的に、それらを1つにマージする方法が必要です。しばらくの間これを見てきたすべての支援に感謝しますが、別の視点が役立つかもしれないとは思えません

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();
    });
});
4

2 に答える 2

1

ID セレクターの代わりにクラス セレクターを使用し、次のようにコールバックに a$(this).fadeInを入れます。fadeOut

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

(すべてのボックスに「ボックス」のクラスがあると仮定します):

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

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

于 2012-04-16T02:07:27.053 に答える
1

エリオットが回答で示したように、これを使用して現在のオブジェクト (この場合はクリックされたオブジェクト) を参照できます ( jQueryを使用していない場合でも)。

于 2012-04-16T02:17:33.987 に答える