Javascript 使用jquery将单击的对象id转换为变量以进行优化

Javascript 使用jquery将单击的对象id转换为变量以进行优化,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,你好,我想知道是否有一种方法可以点击一些东西,比如在这里,我想这样做,当其中一个图像被点击时,我可以把它的id变成一个变量,然后从那里做一个if语句,这样我可以在使用变量后淡出所有其他框和淡出。否则,我将不得不通过点击那里的id来创建6个独立的函数,这将使代码变得更多 我认为这是一种优化它的方法,不确定是否有更好的方法来优化这段代码,考虑到这段代码可能会被复制6次,我基本上想要一种将它们合并为一段的方法。我感谢所有的帮助,我已经关注这一点有一段时间了,但我似乎无法理解,也许换个角度会有所帮助 j

你好,我想知道是否有一种方法可以点击一些东西,比如在这里,我想这样做,当其中一个图像被点击时,我可以把它的id变成一个变量,然后从那里做一个if语句,这样我可以在使用变量后淡出所有其他框和淡出。否则,我将不得不通过点击那里的id来创建6个独立的函数,这将使代码变得更多 我认为这是一种优化它的方法,不确定是否有更好的方法来优化这段代码,考虑到这段代码可能会被复制6次,我基本上想要一种将它们合并为一段的方法。我感谢所有的帮助,我已经关注这一点有一段时间了,但我似乎无法理解,也许换个角度会有所帮助

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();
    });
});
jQuery(函数(){
jQuery(“.catalignleft”)。单击(函数(){
函数完成(){
jQuery(“.alignleft”);
}
如果(状态==1){
jQuery(“#box1”).fadeOut();
jQuery(“#box2”).fadeOut();
jQuery(“#box3”).fadeOut();
jQuery(“#box4”).fadeOut();
jQuery(“#box5”).fadeOut();
jQuery(“#box6”).fadeOut();
jQuery(“#box1”).fadeIn();
地位--;
}否则{
jQuery(“#box1”).fadeIn(1600,“线性”,完整);
状态++;
}
});
jQuery(“#btn2”)。单击(函数(){
jQuery(“#box1”).fadeOut();
jQuery(“#log”).empty();
});
jQuery(“.blocked a”)。单击(函数(事件){
event.preventDefault();
jQuery(“”)
});
jQuery(“#btn2”)。单击(函数(){
jQuery(“#box2”).fadeOut();
jQuery(“#log”).empty();
});
});

使用类选择器而不是ID选择器,并在其
淡出
回调中放置一个
$(this).fadeIn
,如下所示:

$(".box").click(function() {
    $(".box").fadeOut("slow", function() {
        $(this).fadeIn();
    });
});
(假设您的所有盒子都有一个“盒子”类):




而且,没有理由使用
jQuery(…)
。您可以将其缩短为
$(…)
,并节省一些键入时间。

正如Elliot在他的回答中所示,您可以使用此选项引用当前对象(在本例中是单击的对象)(即使您没有使用jQuery)

嘿,齐姆,我想这应该写在评论里。=)对。我不能在你的帖子下(也不能在问题下)加上评论。也许我需要多一点名声?我会考虑的。谢谢你的反馈:)我会的,但wordpress不允许这样做:D但似乎是合理的,我试图找出它,我确实知道这一点,但我只是没有想到这样使用它,谢谢
<div class="box"></div>