2017-11-11 32 views
1

所以,我有了这个toggleImage功能:JavaScript是地方执行一个函数,它不应该

var imgName 
function toggleImage() { 
    image = document.querySelector("img") 
    if (imgName == "business") { 
     image.src = "assignment-resources/images/business.jpg"; 
     imgName = "sports" 
    } 
    else { 
     image.src = "assignment-resources/images/sports.jpg"; 
     imgName = "business" 
    } 

} 

它工作得很好,直到我成立这个toggleModal功能:

var modalOpen 
function toggleModal(){ 

    if (modalOpen == "yes"){ 
     modal.style.display = "block"; 
     modalOpen = "no" 
    } 

    else{ 
     modal.style.display = "none"; 
     modalOpen = "yes" 
    } 

现在,toggleImage函数在模态中执行,而不是改变它应该改变的图像,即使它们完全分离。

模态代码:

 <section class = "modal" id = "modal"> 
     <section class = "modal-content"> 
       <img src = "assignment-resources/images/razgriz.jpg"> 
     </section> 
     </section> 

图片部分代码:

<section class= "picture"><img src = "assignment- 
resources/images/business.jpg"></section> 

基本上,我有一个本应交换“图片”部分中的图像swapImage按钮,它是工作正常,直到我添加toggleModal函数。

现在,即使未显示模式,swapImage功能也会更改模式内的图像,而不是“图片”部分。如果我不是很清楚的道歉,我仍然在学习所有这些。

+1

我想你将不得不更具体 - 尤其是关于*这些函数被调用。而且,你的意思是'功能正在模态中执行'。你的意思是模式中有一个图像正在被切换? –

+0

我编辑了我原来的帖子。 –

回答

0

您需要对您的document.querySelector("img")更具体。这将返回找到的第一张图片。在你的情况下,它听起来像是在模态中找到图像。

document.querySelector("section.picture img") 

这将让是第一sectionclass=picture的后裔第一个图像:

有了您的HTML你可以像选择更具体。当然,你可能想添加ID或其他东西来做出你想要的确切选择。

+0

非常感谢。这工作。 –

+1

啊,刚刚发现该怎么做,谢谢哈哈。 –

相关问题