单击第二次轮次单击

onclick the second time round click

本文关键字:单击 第二次      更新时间:2023-09-26

不确定这是否可以保持代码简单,但我试图使它成为我有一个图像,当你单击它时,它会转到一个新图像。 然后,当您单击该图像时,它会返回到原始图像。我的代码是:

function save_data()
{
if ( document.images.save.src == "saved.png") document.images.save.src="save.png";
if (document.images.save.src == "save.png") document.images.save.src="saved.png";
}

<img id="save"  onclick="save_data()" src="save.png">

它可以简化。

<img id="save"  onclick="save_data(this)" src="save.png">`

你可以做

function save_data(img)
{
  img.src = /saved/i.test(img.src) ? 'save.png' : 'saved.png';
}

如果这不起作用,则可能与saved.png不在 html 所在的路径中有关。因此,请尝试使用完整的URL:

function save_data(img)
{
  var imgpath = 'http://yoursite.com/imgpath/';
  img.src = imgpath + (/saved/i.test(img.src) ? 'save.png' : 'saved.png');
}

注意:最好不显眼地分配点击处理程序(另请参阅此 SO 问题)

if ( document.images.save.src == "saved.png") - 这不起作用,因为.src返回图像的完整路径,而不仅仅是文件名。例如,http://site.com/path/images/saved.png .

请尝试改用匹配子字符串。

function save_data()
{
if ( document.images.save.src.indexOf("saved.png") != -1) document.images.save.src="save.png";
if (document.images.save.src.indexOf("save.png") != -1) document.images.save.src="saved.png";
}