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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

3回答

735閲覧

javascriptでHTMLのimg要素を作成した際に、イベントリスナーを追加する方法。

shum

総合スコア16

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/05/17 04:34

編集2020/05/17 04:56

javascriptを使用して以下のようなwebアプリを作りました。
・ボールの画像をドラック&ドロップすることで画面上どこでも移動することができる。
・ただし、ドロップした背後にゴールの画像があった場合は、ボールの画像を削除する。
(https://jsfiddle.net/h87cLvfn/11/)

現在、このアプリを改修し
ボールの画像の上でクリックしたら、ボールの画像を複製して
複製した画像側でドラック&ドロップで画面上移動&ドロップした背後にゴールの画像があった場合は複製した画像を削除できるようにしたいです。

クリックした際にボールを複製するやり方はわかったのですが、
その複製した画像にイベントリスナーや関数を設定する方法が分かりません。

ご存じの方がいらっしゃいましたら、教えていただけないでしょうか。
以上、よろしくお願いします。

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

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

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

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

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

m.ts10806

2020/05/17 04:48

タイトルと内容が合ってませんよ。 複製できる方法が分かっているのならこのタイトルは解決したことを聴こうとしています
shum

2020/05/17 04:52

確かにそうですね、変えます。
kei344

2020/05/17 11:56

まだ質問が「受付中」になっていますが、「ベストアンサー」を選び「解決済」にされてはいかがでしょうか。
guest

回答3

0

ベストアンサー

イベントバブリング

複製したimg要素でイベントを捕まえるよりも、img要素の親要素or祖先要素でイベントを捕まえる方が、img要素の追加/削除の度に addEventListener を実行しなくて良い分、便利ではありませんか。

キャプチャリング

それがバブルしないイベントなら、キャプチャリングフェーズで捕まえれば良いと思います。

Re: shum さん

投稿2020/05/17 09:56

編集2020/05/17 09:58
think49

総合スコア18189

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

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

shum

2020/05/17 13:09

大変参考になる記事ありがとうございました。 バブリングとキャプチャリングについてはまだ理解できていなかったのですが、実装しながら試してみて理解が深まりました。
guest

0

その複製した画像にイベントリスナーや関数を設定する方法が分かりません。

複製後にイベントリスナーや関数を当てれば良い話では。
[JavaScript 動的 イベント]とかで調べると出るはず。

投稿2020/05/17 04:44

m.ts10806

総合スコア80875

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

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

shum

2020/05/17 05:16

回答ありがとうございます! 自分が検索した際に”動的”という言葉が足りなかったようです。 助かりました。
guest

0

javascript

1// なんやかんやで複製した画像の取得 2let cloneImg = なんやかんやで取得した画像が入った変数.cloneNode(true); 3 4cloneImg.addEventListener('当てたいイベント名', function(){ 5 // 各処理 6}); 7 8// なお上記は、"なんやかんやで取得した画像"と同じスコープか、thisや引数で、"なんやかんやで取得した画像"を捕捉できるようにしておかなければいけない。

投稿2020/05/17 05:22

miyabi_takatsuk

総合スコア9555

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

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

shum

2020/05/17 13:06

この方法で試してみても実装できました。 ご親切ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問