質問するログイン新規登録

回答編集履歴

2

追記

2016/05/26 13:04

投稿

退会済みユーザー
answer CHANGED
@@ -13,4 +13,41 @@
13
13
  //ここにclickされた時に行いたい処理を入れる
14
14
  });
15
15
  ```
16
- と使う感じになります。
16
+ と使う感じになります。
17
+ **--誤った内容ここまで--**
18
+
19
+ ---
20
+
21
+ > 既に解決済みですが`.trigger("click");`にしただけで直ったのが釈然としなかったので他の原因を探ってみました。
22
+ ```javascript
23
+ //jQuery 2.2.3
24
+ <script>
25
+ $(function(){
26
+ $('#teratail').click(); //click1
27
+ $('#teratail').trigger('click'); //trigger1
28
+ $('#teratail').click(function(){
29
+ console.log('teratail');
30
+ return false;
31
+ });
32
+ $('#teratail').click(); //click2
33
+ $('#teratail').trigger('click'); //trigger2
34
+ });
35
+ </script>
36
+
37
+ ```
38
+
39
+ ```html
40
+ <body>
41
+ <a href="https://teratail.com" id="teratail">terateil</a>
42
+ </body>
43
+ ```
44
+ 実際の確認時はclick1,click2,trigger1,trigger2をコメントアウトで変更してそれぞれ`console.log`に出力されるか確認。
45
+
46
+ 結果は
47
+ ```
48
+ click1→出力なし
49
+ click2→出力あり
50
+ trigger1→出力なし
51
+ trigger2→出力あり
52
+ ```
53
+ でしたので、`.click()` `.trigger('click')`共にイベントハンドラ定義後にeventを発生させる必要がある(当然の結果ですが・・・)ので冒頭の回答を受けて修正された際にイベントハンドラ定義後の行に書きなおされたのが直った原因ではないかと推測しています。

1

回答が間違っていたためその旨追記

2016/05/26 13:04

投稿

退会済みユーザー
answer CHANGED
@@ -1,5 +1,12 @@
1
1
  `$('#alert').trigger("click");`を試してください。
2
2
 
3
+
4
+ > 水平線以下は私の誤解で誤った内容です。
5
+ コメント欄でのkei344さんのご指摘の通りとなります、ありがとうございます。
6
+ 削除してしまうとコメント欄との整合性がなくなるため残しますがご注意下さい。
7
+
8
+ ---
9
+
3
10
  `$('#alert').click();`は`click`イベントを発生させるのではなく`click`イベントが発生した時に
4
11
  ```javascrpt
5
12
  $('#alert').click(function(){