0

これがコードを単純に保つことが可能かどうかはわかりませんが、画像が表示されるようにしようとしています。クリックすると、新しい画像に移動します。次に、その画像をクリックすると、元の画像に戻ります。私のコードは:

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">
4

2 に答える 2

3

簡略化できます。

使用する

<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の質問も参照してください) 。

于 2012-05-03T17:42:45.487 に答える
0

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";
}
于 2012-05-03T17:42:39.107 に答える