回答編集履歴

2

追記

2016/05/26 13:04

投稿

退会済みユーザー
test CHANGED
@@ -29,3 +29,77 @@
29
29
  ```
30
30
 
31
31
  と使う感じになります。
32
+
33
+ **--誤った内容ここまで--**
34
+
35
+
36
+
37
+ ---
38
+
39
+
40
+
41
+ > 既に解決済みですが`.trigger("click");`にしただけで直ったのが釈然としなかったので他の原因を探ってみました。
42
+
43
+ ```javascript
44
+
45
+ //jQuery 2.2.3
46
+
47
+ <script>
48
+
49
+ $(function(){
50
+
51
+ $('#teratail').click(); //click1
52
+
53
+ $('#teratail').trigger('click'); //trigger1
54
+
55
+ $('#teratail').click(function(){
56
+
57
+ console.log('teratail');
58
+
59
+ return false;
60
+
61
+ });
62
+
63
+ $('#teratail').click(); //click2
64
+
65
+ $('#teratail').trigger('click'); //trigger2
66
+
67
+ });
68
+
69
+ </script>
70
+
71
+
72
+
73
+ ```
74
+
75
+
76
+
77
+ ```html
78
+
79
+ <body>
80
+
81
+ <a href="https://teratail.com" id="teratail">terateil</a>
82
+
83
+ </body>
84
+
85
+ ```
86
+
87
+ 実際の確認時はclick1,click2,trigger1,trigger2をコメントアウトで変更してそれぞれ`console.log`に出力されるか確認。
88
+
89
+
90
+
91
+ 結果は
92
+
93
+ ```
94
+
95
+ click1→出力なし
96
+
97
+ click2→出力あり
98
+
99
+ trigger1→出力なし
100
+
101
+ trigger2→出力あり
102
+
103
+ ```
104
+
105
+ でしたので、`.click()` `.trigger('click')`共にイベントハンドラ定義後にeventを発生させる必要がある(当然の結果ですが・・・)ので冒頭の回答を受けて修正された際にイベントハンドラ定義後の行に書きなおされたのが直った原因ではないかと推測しています。

1

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

2016/05/26 13:04

投稿

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