2

このサイトで見つかったいくつかの方法を試して、スクリプトで「+」と「-」の展開/折りたたみボタンの画像を変更しましたが、適切な修正/方法がまだ見つかりません。

現在、私は次のようにプレーンJSを使用しています。

function swapimg(id) {
if(document.getElementById(id).src='images/bullet_expand.png')
{document.getElementById(id).src='images/bullet_expanded.png'}
else {document.getElementById(id).src='images/bullet_expand.png'}
}

とボタン:

<a href="javascript:void();" onclick="toggle_visibility('item1'); swapimg('phb');">
<img src="images/bullet_expand.png" border="0" style="padding-right: 5px;" id="phb" alt="">
</a>

最初のクリックは画像​​を変更しますが、2回目のクリックは何もしません。「getElementById」を使用するのは標準的な呼び出しではないかもしれないと感じているので、JQueryを使用することも検討するオプションです。

4

1 に答える 1

3

値を割り当てていることを比較する代わりに、必要==であり、=

これの代わりに:

document.getElementById(id).src='images/bullet_expand.png'

使用する

document.getElementById(id).src=='images/bullet_expand.png'

jQuery:

if(jQuery('#'+id).attr('src') == 'images/bullet_expand.png') {
   jQuery('#'+id).attr('src','images/bullet_expanded.png');
} else {
   jQuery('#'+id).attr('src','images/bullet_expand.png');
}

Javascript:

if(document.getElementById(id).src.indexOf('/images/bullet_expand.png') > 0) {
    document.getElementById(id).src='images/bullet_expanded.png';
}
else {
    document.getElementById(id).src='images/bullet_expand.png';
}
于 2012-06-01T17:14:36.703 に答える