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

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

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

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

2回答

1706閲覧

jQueryでクリックイベントを着火できない

yuta0801

総合スコア270

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2017/04/27 13:19

とあるサイトのJSのソースコードをいじってボタンを押したらコンソールログを出すようにしました
スクリーンショット
実際そのボタンをクリックするとログが出ます

しかし、$().click()と実行しても出ません※要素名は省略

何が原因なのでしょうか、教えてください

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2017/04/27 13:20

現象を再現できるソースコードを提示してください。
yuta0801

2017/04/27 13:22

同じようなコードを書いてみたのですが、どうしても再現できませんでした。普通にログが出てします
退会済みユーザー

退会済みユーザー

2017/04/27 13:25

再現しないのでは、回答のしようがありませんね。
toutou

2017/04/27 13:26

書き間違えとかそんなんが原因だと思います。そちらで再現できないのであれば、こちらでも再現できないので原因の解明は難しく、望みの答えは出ないと思います。
yuta0801

2017/04/27 13:27

そのサイトは結構前に出来たものなのでjQueryのバージョンが古いかもしれないのですが、関係あるのでしょうか
toutou

2017/04/27 13:31

そのサイトのJqueryを自分で確認してください。古いかもといわれても実際古くなかったらそれは違う答えになります。
s8_chu

2017/04/27 14:46

現象を再現できる状況を提示することは不可能なのでしょうか?
think49

2017/04/27 22:55 編集

「該当サイトのURL」と「貼り付けたコード」を開示しないと、誰にも分からない気がします。
guest

回答2

0

ベストアンサー

イベントバブリングの伝播を抑止

stopImmediatePropagation()stopPropagation() でバブリングを停止したら、イベントが伝播しなくなりますね。
仮にそれが原因ならば、下記対策が考えられます。

  • 該当コードをLocalProxy(ex: Proxydomo)で書き換えて削除する
  • バブリングを停止しているコードにグローバル参照可能ならば、removeEventListener で削除してから addEventListener してバブリングを停止せずとも正常動作するように書き換える

バブリング停止の目的は「上位ノードにイベントが伝播する事で不具合が誘発されることを防ぐ事」にある為、単純にバブリングを有効にするだけでは別の不具合が発生する事が想像されます。
その為、全体のコードをしっかりと読んで、バブリングを停止せずとも期待通りに動作するようコードを修正する必要があります。

これ以上は「該当サイトのURL」と「貼り付けたコード」を開示しないと、誰にも分からないと思います。

Re: yuta0381 さん

投稿2017/04/27 23:02

編集2017/04/27 23:04
think49

総合スコア18166

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

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

0

console.log(sa.get(0));

など、saがきちんとつかめているか確認してみては?

追記

掴み方が問題ないのであればあとば提示している以外の部分が問題なのでしょう
最低限で書けばクリックは普通に拾えているはずです

javascript

1<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 2<script> 3$(function(){ 4 var sa=$('#hoge'); 5 sa.click(function(b){ 6 console.log("クリックされた"); 7 }); 8}); 9</script> 10<input type="button" id="hoge" value="fuga">

投稿2017/04/27 13:33

編集2017/04/27 13:42
yambejp

総合スコア114915

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

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

yuta0801

2017/04/27 13:38

はい、あっていました
yuta0801

2017/04/27 13:51

必要最低限のソースにしてみたのですがやっぱり駄目でした。。。
yambejp

2017/04/27 13:54

私の追記ソースの部分をコピペしてボタンをおしてもダメなのでしょうか? 具体的にダメとは何も起きないという意味ですよね?
yuta0801

2017/04/27 14:41

いや、そのサイトに貼り付けたときの話です
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問