回答編集履歴
1
jsbinで検証
answer
CHANGED
|
@@ -5,23 +5,34 @@
|
|
|
5
5
|
|
|
6
6
|
(function() {
|
|
7
7
|
// ...
|
|
8
|
+
|
|
9
|
+
var funcList = []
|
|
10
|
+
|
|
8
|
-
document.querySelectorAll('a').forEach(function(
|
|
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
|
-
|
|
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
|
+
で動作するようです
|