2010-12-18 11 views
0

に可視性を設定するvisibility:hiddenonClickイベントの画像があります。画像のIDがImg_(somenumber)の場合画像の可視性1

1つの画像が表示されているときに他の画像がすべて非表示になるようにするにはどうすればよいですか? jqueryのを使用して

答えて

0

次のことを試みることができる:

  • は、あなたが彼らの視界を操作したい画像のセットにクラスを追加します。例えば

次にあなたがのonclickイベントに次のようでした各画像のために:

<img src="{img_src}" class="myImages" onclick="$('img.myImages').hide(); $(this).show();" /> 

以上、当然のことながら、あなたはそれぞれの画像タグを変更する必要があります。

できない場合は(画像が多い)、ドキュメントが読み込まれたときにトリガーされる関数を使用して、各画像の 'onclick'イベントのハンドラーを追加してみてください。これも簡単にjqueryや別のjsライブラリを使用して簡単に実現しました。

+0

可能であればプレーンjsをしたいと思っています。http://jsbin.com/acahu3/editを見てください。それは、それがどのように見えるかについてhtmlの例があります、それは唯一のものです。それぞれのイメージの正確なIDがわからない場合は、 "Img_"で始まることがわかります – Yan

0

これを行う方法は数多くあります。私はあなたがそれをより深く考えたがっていると確信しています。しかし、jQueryを使わない答え。これをあなたのonClickハンドラとして追加してください。 thisキーワードを必ず渡してください。

<img onclick="toggleVisible(this);" src="" /> 

は、どこかのページでこの機能を含める:あなたがに実行されます

function toggleVisible(clickedLI) { 
    var imgs = document.getElementsByTagName('img'); 
    var i = imgs.length; 
    while (i--) { 
     var img = imgs[i]; 
     if (img.id.indexOf('Img_' == 0)) { 
      img.style.visibility = img.parentNode == clickedLI ? 'visible' : 'hidden'; 
     } 
    } 
} 

最初の問題は、隠された画像を取り戻す方法がないということです。彼らはそこにいて、文書内のスペースを占めていますが、クリックイベントには反応しません(少なくともChromeではそうではありません)。アンドレアス氏によると、画像がたくさんある場合は、より効率的な方法があります。

+0

これは、onclickイベントが "li"要素であり、写真自体ではなく、何かが動作しない理由です:http://jsbin.com/acahu3/3/edit – Yan

+0

jQueryの問題は私がすでにプロトタイプを持っていることです。それは事を上手くくっつけます... – Yan

+0

ああ、私はあなたがそれらをLIに載せていたことを認識しませんでした。ここに固定の例があります。 http://jsbin.com/acahu3/4/edit – Hemlock