質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

3836閲覧

class要素を指定してマウスイベントを実行させたい。

vnsa7221

総合スコア348

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2016/10/03 09:16

###前提・実現したいこと
class要素を指定してまうイベントを実行させたいが、うまく行えない。

###該当のソースコード

html

1<!doctype html> 2<html> 3<head> 4<meta charset="UTF-8"> 5<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> 6<meta name="format-detection" content="telephone=no"> 7<title></title> 8</head> 9<body> 10<div class="tooltip-body">カーソルがあった時イベント実行</div> 11</body> 12</html>

javascript

1<script type="text/javascript" src="js/jquery.js"></script> 2<script type="text/javascript"> 3var main = document.getElementsByClassName("tooltip-body"); 4 5// カーソルが文章に乗った時 6main.onmouseover = function(){ 7 console.log('over!'); 8}; 9 10// カーソルが文章から離れた時 11main.onmouseout = function(){ 12 console.log('out!') 13}; 14 15// カーソルが移動中の時 16main.onmousemove = function(){ 17 console.log('move!'); 18}; 19</script>

###補足情報(言語/FW/ツール等のバージョンなど)
まだJSについて詳しくはないため、分かりやすいアドバイスをいただけるとありがたいです。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

jQueryを利用しているのであればこんな感じで

javascript

1$(document) 2.on('mouseover','.tooltip-body',function(){ 3 console.log('over!'); 4}) 5.on('mouseout','.tooltip-body',function(){ 6 console.log('out!') 7}) 8.on('mousemove','.tooltip-body',function(){ 9 console.log('move!'); 10}); 11

もしくは初期設定に入れてこんな感じ

javascript

1$(function(){ 2$('.tooltip-body').on('mouseover',function(){ 3 console.log('over!'); 4}).on('mouseout',function(){ 5 console.log('out!') 6}).on('mousemove',function(){ 7 console.log('move!'); 8}); 9}); 10

追記

HTML

1<script> 2document.addEventListener ('mouseover',function(e){myfunc(e)}); 3document.addEventListener ('mouseout',function(e){myfunc(e)}); 4document.addEventListener ('mousemove',function(e){myfunc(e)}); 5function myfunc(e){ 6 var t=e.target; 7 if(t.nodeName=="DIV" && t.className.match(/(^| )tooltip-body( |$)/)){ 8 switch(e.type){ 9 case "mouseover": 10 console.log(t.innerHTML+' over!'); 11 break; 12 case "mouseout": 13 console.log(t.innerHTML+' out!') 14 break; 15 case "mousemove": 16 console.log(t.innerHTML+' move!'); 17 break; 18 } 19 } 20} 21</script> 22 23<div class="hoge tooltip-body fuga" style="width:100px;height:100px;background-Color:yellow">yellow</div> 24<div class="tooltip-body hoge" style="width:100px;height:100px;background-Color:lime">lime</div> 25<div class="tooltip-body" style="width:100px;height:100px;background-Color:aqua">aqua</div> 26<div class="hoge" style="width:100px;height:100px;background-Color:red">red</div>

※red領域にはtooltip-bodyクラスが設定されていないので反応しない

投稿2016/10/03 09:32

編集2016/10/03 10:03
yambejp

総合スコア114572

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

vnsa7221

2016/10/03 09:42

回答ありがとうございます。 今回jQueryなしでJSのみでどのように作れば良いのか知りたいと思ったので投稿しました。 もしよろしければJSのみでの書き方もアドバイスしていただけると幸いです。
yambejp

2016/10/03 09:48

それでした元ソースにjQueryの組み込みを記載しないほうがよかったですね 追記します
vnsa7221

2016/10/03 10:38

追記していただきありがとうございました。 こちらの方法を参考に作成してみたいと思います。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問