質問編集履歴
2
追加・編集分がどこからどこまでなのかわかりやすく修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -54,6 +54,13 @@
|
|
54
54
|
yambejp様の回答どおりに、`HTMLElement.prototype`に、`dispatchEvent`を実行する`trigger`を新しく定義する方法で解決しました。
|
55
55
|
|
56
56
|
```javascript
|
57
|
+
const sel_lang = document.getElementById("id-sel_lang");
|
58
|
+
sel_lang.addEventListener("change", function(){
|
59
|
+
console.log("変わりました");
|
60
|
+
});
|
61
|
+
|
62
|
+
/***追加・編集ここから***/
|
63
|
+
|
57
64
|
HTMLElement.prototype.trigger = function(eStr) {
|
58
65
|
var e = document.createEvent("HTMLEvents");
|
59
66
|
e.initEvent(eStr, true, true );
|
@@ -66,12 +73,21 @@
|
|
66
73
|
sel_lang.value = "js";
|
67
74
|
sel_lang.trigger("change");
|
68
75
|
});
|
76
|
+
|
77
|
+
/**追加・編集ここまで**/
|
69
78
|
```
|
70
79
|
|
71
80
|
あるいは`HTMLElement`を汚したくない場合、`sel_lang`に追加する方法でも解決できました。
|
72
81
|
|
73
82
|
```javascript
|
83
|
+
const sel_lang = document.getElementById("id-sel_lang");
|
84
|
+
sel_lang.addEventListener("change", function(){
|
85
|
+
console.log("変わりました");
|
86
|
+
});
|
87
|
+
|
88
|
+
/***追加・編集ここから***/
|
89
|
+
|
74
|
-
sel_lang.trigger = function(eStr){
|
90
|
+
sel_lang.trigger = function(eStr) {
|
75
91
|
var e = document.createEvent("HTMLEvents");
|
76
92
|
e.initEvent(eStr, true, true );
|
77
93
|
this.dispatchEvent(e);
|
@@ -83,4 +99,6 @@
|
|
83
99
|
sel_lang.value = "js";
|
84
100
|
sel_lang.trigger("change");
|
85
101
|
});
|
102
|
+
|
103
|
+
/***追加・編集ここまで***/
|
86
104
|
```
|
1
解決後のコードを記載
title
CHANGED
File without changes
|
body
CHANGED
@@ -48,4 +48,39 @@
|
|
48
48
|
|
49
49
|
という状況です。
|
50
50
|
|
51
|
-
なにか良い方法がありますでしょうか?よろしくお願いします。
|
51
|
+
なにか良い方法がありますでしょうか?よろしくお願いします。
|
52
|
+
|
53
|
+
# 【解決後】最終的なコード
|
54
|
+
yambejp様の回答どおりに、`HTMLElement.prototype`に、`dispatchEvent`を実行する`trigger`を新しく定義する方法で解決しました。
|
55
|
+
|
56
|
+
```javascript
|
57
|
+
HTMLElement.prototype.trigger = function(eStr) {
|
58
|
+
var e = document.createEvent("HTMLEvents");
|
59
|
+
e.initEvent(eStr, true, true );
|
60
|
+
this.dispatchEvent(e);
|
61
|
+
}
|
62
|
+
|
63
|
+
const btn = document.getElementById("id-btn");
|
64
|
+
btn.addEventListener("click", function(){
|
65
|
+
if (sel_lang.value === "js") { return; }
|
66
|
+
sel_lang.value = "js";
|
67
|
+
sel_lang.trigger("change");
|
68
|
+
});
|
69
|
+
```
|
70
|
+
|
71
|
+
あるいは`HTMLElement`を汚したくない場合、`sel_lang`に追加する方法でも解決できました。
|
72
|
+
|
73
|
+
```javascript
|
74
|
+
sel_lang.trigger = function(eStr){
|
75
|
+
var e = document.createEvent("HTMLEvents");
|
76
|
+
e.initEvent(eStr, true, true );
|
77
|
+
this.dispatchEvent(e);
|
78
|
+
}
|
79
|
+
|
80
|
+
const btn = document.getElementById("id-btn");
|
81
|
+
btn.addEventListener("click", function(){
|
82
|
+
if (sel_lang.value === "js") { return; }
|
83
|
+
sel_lang.value = "js";
|
84
|
+
sel_lang.trigger("change");
|
85
|
+
});
|
86
|
+
```
|