Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.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 - Fatal编程技术网

Javascript 为什么';我的函数是否在第二次单击时加载新类名?

Javascript 为什么';我的函数是否在第二次单击时加载新类名?,javascript,Javascript,我有一个附加了我的函数的模态: <img onclick="modalZoom()" class="zoomed-out" id="modal-img"> 我还尝试添加一个else if语句,而不是只添加else,但我的问题是,当我第一次单击它时,它读取类,并且由于它是缩小的,它会删除该语句并添加放大的。但是由于某种原因,当我第二次点击它时,console.log(imgClass)仍然返回缩小的,并且我的代码的最后一半没有运行,即使我可以在我的检查器中看到类被缩小了。var im

我有一个附加了我的函数的模态:

<img onclick="modalZoom()" class="zoomed-out" id="modal-img">

我还尝试添加一个
else if
语句,而不是只添加
else
,但我的问题是,当我第一次单击它时,它读取类,并且由于它是
缩小的
,它会删除该语句并添加
放大的
。但是由于某种原因,当我第二次点击它时,
console.log(imgClass)
仍然返回缩小的
,并且我的代码的最后一半没有运行,即使我可以在我的检查器中看到类被缩小了。
var imgClass
是否仅在函数第一次运行时运行?如果是,我该如何绕过它?我尝试删除变量并直接在
if
语句中获取类,但仍然存在相同的问题。

因此我将代码更改为
if(imgClass.match(“缩放”)
。老实说,我不知道区别是什么,但它起了作用。

imgClass=“zoomed”
classList
返回列表数组,而不是单个类。我还尝试了
className
,同样的问题。这是因为类可以有多个值,如
class=“a b c”
。因此,当您匹配时,它起作用了。但是元素只有一个类:
缩小了。在它变为“放大”
后,它不再等于“缩小”
,所以按照我的理解,它应该执行代码的第二部分。
function modalZoom() {
    var imgClass = document.getElementById("modal-img").classList;
    var pedImg = document.getElementById("modal-img");
    if (imgClass = "zoomed-out") {
        pedImg.classList.remove("zoomed-out");
        pedImg.classList.add("zoomed-in");
    } else {
        pedImg.classList.remove("zoomed-in");
        pedImg.classList.add("zoomed-out");
    }
    console.log(imgClass);
}