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

回答編集履歴

1

jsbinで検証

2017/09/16 00:39

投稿

m0a
m0a

スコア708

answer CHANGED
@@ -5,23 +5,34 @@
5
5
 
6
6
  (function() {
7
7
  // ...
8
+
9
+ var funcList = []
10
+
8
- document.querySelectorAll('a').forEach(function(value) {
11
+ document.querySelectorAll('a').forEach(function(el) {
12
+
9
13
  var clickFunc = function(event) {
10
14
  event.preventDefault();
11
15
 
12
16
  var img = document.querySelector('img');
13
17
  img.src = this.getAttribute('href');
14
18
  img.alt = this.textContent;
15
-
16
- // event解除処理
17
- value.removeEventListener('click',clickFunc);
18
- }
19
+ };
19
-
20
+
21
+
20
- value.addEventListener('click', clickFunc , false);
22
+ el.addEventListener('click', clickFunc, false);
23
+ funcList.push({
24
+ clickFunc:clickFunc,
25
+ el:el
26
+ })
21
27
  });
22
28
 
29
+ document.querySelector('button').onclick = function () {
30
+ funcList.forEach(function(pair){
31
+ pair.el.removeEventListener('click',pair.clickFunc,false);
32
+ });
33
+ }
23
34
  })();
24
35
 
25
36
  ```
26
37
 
27
- どうでしょうか? (コードの動作は未検証でので動くかどかはわかりません)
38
+ で動作するよです