
お世話になります。
早速質問します。
ある画像一覧を、画像一枚一枚に付属するチェックボックスを使用して、
選別という作業をしています。
[画像を確認→チェックボックスへポインポインタ移動→チェック]という手順です。
しかし、画像が大量にある上、チェックボックスはアクティブな面積が狭いので、実に手間が掛かります。
そこで、画像へのマウスオーバーのみで、チェックのオンオフを切り替えられないかと考えたのですが、
これはjavascriptで可能でしょうか?
可能でしたら、参考になるコードや、その他ヒントなど教えて頂けないでしょうか。
一応プログラミングについて、phpが中級者程度で、
今回のテーマのプログラムも自分で書いたものです。
javascriptは初級者レベルになります。
アドバイスを宜しくお願いします。

No.3ベストアンサー
- 回答日時:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<title>TEST</title>
<style type="text/css">
.imgbox{ background-color:#eee; border:1px #aaa solid; width:86px; height:86px; padding:1px; float:left; }
.imgbox img { border:1px #fff solid; width:80px; height:60px; margin-bottom:2px; }
.imgbox div{ overflow:hidden; font-size:10px;}
</style>
<div id="imgCheck"></div>
<script type="text/javascript">
//@cc_on
Number.prototype.zero = function(n){ return ('0000000000'+ this).slice(-n); }
var html = '';
for(i=0;i<30;i++){
var src = 'img'+(i.zero(4))+'jpg';
html += '<div class="imgbox"><img src="' + src + '" alt="'+src+'"><div><input type="checkbox" value="'+src+'">'+src+'</div></div>';
}
document.getElementById('imgCheck').innerHTML = html;
document.getElementById('imgCheck')./*@if(1)attachEvent('on'+ @else@*/addEventListener(/*@end@*/'mouseover', chk, false);
function chk( evt ){
var node = evt.target || evt.srcElement;
if( node.nodeName == 'INPUT' && node.type =='checkbox' ) node.checked = !node.checked;
}
</script>

No.4
- 回答日時:
反応が無いようですが
</style>の下の行に
<body>
を追加してください
_pipi_さん失礼しました。詳細なコードまで起こして頂き、
ありがとうございます。
コードの中身が理解出来てからお礼をと考えていたのですが、
全て理解するにはあと半日掛かりそうです。
javascriptは、ブラウザでちょっと面白い動作、表示をさせるためだけの
ものかなと思っていたのですが、
自作ツールとして実務処理をさせると、実に便利に振るまって
くれるものですね。phpと混在可な点もとてもいいです。
俄然興味が沸きました。
内心、回答して頂いた全ての方に20ポイント振らせて頂きたいのですが、
コードの長さ順に振らせて頂く事にします。
No.2
- 回答日時:
やりたいことは可能だと思いますが、HTML の構成にもよるので、
下は一例です。
[JavaScript]
function nextSiblingElement(n){ return n && (n = n.nextSibling) ? n.nodeName == 'INPUT' ? n : arguments.callee(n) : null; }
function switchedByFrontIMG(evt){
try{
var trigger = evt.target || evt.srcElement;
var target = null;
if(trigger.nodeName == 'IMG'){
target = nextSiblingElement(trigger);
target && (target.checked = !target.checked);
}
}catch(exp){ throw exp; }
}
[HTML]
<form action="xxxx" onmouseover="switchedByFrontIMG(event)"> <!-- form じゃ無くても可 -->
<div>
<!-- 同系列で後ろに input があれば、間に何かが挟まっていても OK -->
<img src="xxx" width="xxx" height="xxx" alt=""><br><input type="checkbox" name="xxxx">
<img src="xxx" width="xxx" height="xxx" alt=""><input type="checkbox" name="xxxx">
<p><img src="xxx" width="xxx" height="xxx" alt=""><input type="checkbox" name="xxxx"></p>
<p><img src="xxx" width="xxx" height="xxx" alt=""><span>xxx</span><input type="checkbox" name="xxxx"></p>
<!-- 系列が異なる場合は NG -->
<img src="xxx" width="xxx" height="xxx" alt=""><p><input type="checkbox" name="xxxx"></p>
<table summary="">
<tr><td><img src="xxx" width="xxx" height="xxx" alt=""></td><td><input type="checkbox" name="xxxx"></td></tr>
</table>
</div>
</form>
あまり離れている場合は、name 又は id で拾ってくるようにするとスマートかと思います。
お礼はコードを理解してからと思っていたのですが、
中々理解し切れないので、失礼ですがお礼だけは済ませる
ことにしました。
もう暫く少し時間を掛けて、理解させて頂きます。
巧く動かせれば、かなり手間が省けるはずなので
既に楽しみです。ありがとうございました。
No.1
- 回答日時:
もちろんクリックでON/OFFを切り替えるものとしてお答えします。
(マウスオーバー は、カーソルを重ねただけの状態を言います。)
JavaScriptは必要ないですよ。
<label for="check01"><img src="hoge.png" /></label>
<input id="check01" name="fuga" value="on" />
このように、クリックで反応させたいものをlabelタグで囲い、
for属性で操作先のチェックボックス(などのフォーム要素)のIDを指定すると
お望みの動作をしてくれると思います。
この回答への補足
アドバイスありがとうございます。
こういったhtmlの書き方がるのは知りませんでした。
勉強になりました。
ですが・・・ですね、実はbuddhisticさんの仰る、そのマウスオーバーで
on/offを切り替えたいんです。クリックなしで。
画像の上を、マウスポインタをスライドさせてゆくだけで、
チェックの切り替えが出来れば、相当手間が省けるはずなんです。
難しいでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
隣の枝がはみ出してきたら切ってもいい?最もやってはいけないことは?
「隣の木が越境してきて困るが、勝手に切ってはいけないと聞くし…」そう思っている方も多いだろう。実は、2023年4月1日に民法が改正され、この「越境枝」のルールが大きく変わった。 教えて!gooでも「境界から出て...
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
オブジェクト配列の各メンバを...
-
タグを教えてください。
-
ラジオボタンを複数選択したと...
-
jsで質問です。 formをsubmitし...
-
GASでチェックボックスを一括of...
-
GoogleChartの組織図について
-
2025年相性がいい人のサイトの...
-
CookieをWebStoeageに変える
-
Adobe acrobat proでフォームを...
-
Outlookのアカウントがあるとメ...
-
jqueryのselect2で検索欄の文字...
-
<tr>指定した表の行要素をボ...
-
食材の期限を管理するためにGAS...
-
ビデオのJSについて
-
鍵盤アプリで、スマホの画面に...
-
<div>のタッチ状態を維持したま...
-
jQueryでシンセサイザーを作っ...
-
プログラミング 学習
-
HTMLでサブフレームから親のス...
-
ジャバスクリプトについて。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
bxsliderで最初に縦に複数表示...
-
Javascript初心者|jQueryの.va...
-
jQueryでのドラッグアンドドロ...
-
アップロードファイルの種類に...
-
昔作ったHPのjavascritがグーグ...
-
パララックスについて 上下に...
-
Javascriptのエラーに悩まされ...
-
デフォルト非表示にしたい。【t...
-
JavaScriptでサイコロのような...
-
jQueryで同じクラス名のものを...
-
交互に入れ替わる画像を複数配置
-
JavaScriptでの画像切り替えを...
-
fancyboxのポップアップ時の画...
-
スワップイメージのフェード方...
-
「画像クリックで音声再生」を ...
-
透過PNGをIE6へ、かつYoutubeの...
-
embed要素のsrc属性の値を変更...
-
jQueryでスマホ向けページのロ...
-
jQueryで表示している所をsubm...
-
onMouseoverについて教えてくだ...
おすすめ情報