回答編集履歴
2
誤字の修正
answer
CHANGED
@@ -55,7 +55,7 @@
|
|
55
55
|
$('#first').on('mouseup', (e)=>{
|
56
56
|
// マウスの左ボタンが離された場合
|
57
57
|
if(e.button == 0){
|
58
|
-
$('#first').off('
|
58
|
+
$('#first').off('keypress');
|
59
59
|
}
|
60
60
|
});
|
61
61
|
```
|
1
追記
answer
CHANGED
@@ -30,4 +30,32 @@
|
|
30
30
|
keypressイベントはキーボードを押した時にイベント発火するものなので、
|
31
31
|
上記のことを行うのは不可能だと思います。
|
32
32
|
|
33
|
-
javascriptのイベントの動作を再確認することをお勧めします。
|
33
|
+
javascriptのイベントの動作を再確認することをお勧めします。
|
34
|
+
|
35
|
+
|
36
|
+
**追記**
|
37
|
+
クリックしながらの要件なら離した時にkeypressイベントを削除しないと、
|
38
|
+
イベントが残り続けてキーボード押下でイベント発火し続けてしまいますね。
|
39
|
+
この場合はclickイベントを使うより、mousedownイベントでkeypressイベントを追加し、mouseupイベントで削除するのがいいかと思います。
|
40
|
+
試しのサンプルコードを載せておきます。
|
41
|
+
```javascript
|
42
|
+
$('#first').on('mousedown', (e)=>{
|
43
|
+
// マウスの左ボタンが押された場合
|
44
|
+
if(e.button == 0){
|
45
|
+
// 選択中のタグを切り替える
|
46
|
+
$('#second').removeClass('selected');
|
47
|
+
$('#first').addClass('selected');
|
48
|
+
|
49
|
+
$('#first').focus();
|
50
|
+
$('#first').on('keypress', (e)=>{
|
51
|
+
console.log("first",e.key)
|
52
|
+
});
|
53
|
+
}
|
54
|
+
});
|
55
|
+
$('#first').on('mouseup', (e)=>{
|
56
|
+
// マウスの左ボタンが離された場合
|
57
|
+
if(e.button == 0){
|
58
|
+
$('#first').off('keyup');
|
59
|
+
}
|
60
|
+
});
|
61
|
+
```
|