Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么类会改变顺序?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 为什么类会改变顺序?

Javascript 为什么类会改变顺序?,javascript,jquery,html,Javascript,Jquery,Html,$(“body”)。在(“单击”,“关闭”,函数()上){ var class_test1='class1 class2'; var class_test2='class1 class3'; $('id_test').removeClass(class_test1).addClass(class_test2); }); 测验 测验 原因如下: 有多个类与多次单击重叠。 让我解释一下: 第一次单击按钮时,类“class1”和“class2”将被删除。然后附加“class1”和“class3” 但

$(“body”)。在(“单击”,“关闭”,函数()上){
var class_test1='class1 class2';
var class_test2='class1 class3';
$('id_test').removeClass(class_test1).addClass(class_test2);
});

测验
测验

原因如下:

有多个类与多次单击重叠。 让我解释一下:

第一次单击按钮时,类“class1”和“class2”将被删除。然后附加“class1”和“class3”

但是,如果再次单击该按钮,则只有“class1”被删除,从而使“class3”移动到第一个位置(因为不再有“class2”可删除)。然后在“class3”之后重新添加“class1”-结果是“class3 class1”

建议的解决办法:

$("body").on("click", ".close", function() {
  var class_test2 = 'class1 class3';
  $('#id_test').removeClass().addClass(class_test2);
});
这将删除所有类,然后按正确的顺序添加正确的类。

试试看

$(".close").on("click", function() {
  $('#id_test').removeClass("class2").addClass("class3");
});
您可以使用在一个
className
字符串的末尾切换
2
3

$(“body”)。在(“单击”,“关闭”,函数()上){
var n=3;
$(“#id_test”).toggleClass(函数(){
返回“class2 class”+n;
})
});
#id_test.class2{
颜色:绿色;
}
#id_测试类别3{
颜色:蓝色;
}
#id_测试。类别2:之后{
内容:attr(类);
}
#id_测试。类别3:之后{
内容:attr(类);
}

测验
测验

既然您只是在添加/删除
class2
class3
,为什么不只切换它们呢?因为必须完全按照我所写的那样做,但是
div#id_test
可以有其他类,并且它会删除它们的对象假设这是一个问题,您可以使用此代码来立即将它们全部删除:$(“#id#u test”).removeClass('class1 class2 class3');它可以是
$('#id_test')@它正在下降是的。我的主要问题很糟糕。不幸的是,我在思考之前就写了,现在我不能删除这个问题。