2017-04-02 85 views
-1

这个函数有什么问题?第一个if语句确实有效。但其他声明不起作用。If-statement with changing url

function func() { 
    if (document.getElementById("pic2").src = "pause.png") { 
     document.getElementById("pic2").src = "play.png"; 
    } else { 
     document.getElementById("pic2").src == "pause.png"; 
    } 
} 

HTML:

<div id="all" onclick="func()" onmouseover="func3()"> 
      <div id="background" onclick="func()" onmouseout="func2()"></div> 
      <div id="pic"> 
       <img id="pic2" src="pause.png"> 
      </div> 
      <video> 
       <source src="test.mp4" type="video/mp4"> 
      </video> 
     </div> 
+3

是一个错字错误?您在使用语句 –

+0

时是否需要在点击时切换图像? – IsuruAb

+0

是的!我怎么能做到这一点? – Soccerlife

回答

1

有一些事情没让你切换你的IMG SRC。

  1. 不正确的状态检查。 if (document.getElementById("pic2").src = "pause.png")必须是if (document.getElementById("pic2").src=="pause.png")
  2. document.getElementById("pic2").src会给你的图像的完整路径。它能够更好地修剪下来使用img_url.substr(img_url.lastIndexOf("/")+1);

function func() { 
 
    var img_url = document.getElementById("pic2").src; 
 
    var img = img_url.substr(img_url.lastIndexOf("/")+1); 
 
    if (img == "pause.png") { 
 
     document.getElementById("pic2").src = "play.png"; 
 
    } else { 
 
     document.getElementById("pic2").src = "pause.png"; 
 
    } 
 
} 
 

 
function func2(){ 
 
// your func2 
 
} 
 

 
function func3(){ 
 
// your func3 
 
}
<div id="all" onclick="func()" onmouseover="func3()"> 
 
      <div id="background" onclick="func()" onmouseout="func2()"></div> 
 
      <div id="pic"> 
 
       <img id="pic2" src="pause.png"> 
 
      </div> 
 
      <video> 
 
       <source src="test.mp4" type="video/mp4"> 
 
      </video> 
 
     </div>

+0

它不起作用。我想在每次点击#all时实现这一点,图像源必须改变。 – Soccerlife

+0

它仍然不起作用 – Soccerlife

+0

@Soccerlife这怎么可能,我现在已经添加了输出的代码,只是检查并确认 –

0

单等号符号是分配一个值图像名称(带扩展名)。你必须添加两个等于比较两个变量或值。
这样的: -

function func() { 
    if (document.getElementById("pic2").src == "pause.png") { 
     document.getElementById("pic2").src = "play.png"; 
    } else { 
     document.getElementById("pic2").src = "pause.png"; 
    } 
} 
0

试试这个:

function func() { 

     var image = document.getElementById("pic2");// more efficient way 

     if (image.src == "pause.png") { // double equal sign here 

      image.src = "play.png"; // equal sign here 
     } else { 
      image.src = "pause.png";// equal sign here 
     } 
    } 

好运

+0

OP为什么要“尝试此代码”?一个**好的答案**总是会解释做了什么以及为什么这样做, 不仅适用于OP,而且适用于SO的未来访问者,可能会发现此问题并正在阅读您的答案。 – RiggsFolly

+0

@RiggsFolly,你来这里,这真是你好吗 –

+0

阅读代码中的评论 –