JavaScript の質問用スレッド vol.126 (308レス)
JavaScript の質問用スレッド vol.126 http://mevius.5ch.net/test/read.cgi/tech/1702111239/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
31: デフォルトの名無しさん (ワッチョイ c73f-r/Us [2400:2200:736:eb7f:*]) [sage] 2023/12/19(火) 00:19:13.16 ID:ny/Z19vi0 >>30 本当に期待通りに動いてるかしっかり確認した? http://mevius.5ch.net/test/read.cgi/tech/1702111239/31
32: デフォルトの名無しさん (ワッチョイ 0343-Qk2W [2001:268:9a84:9fef:*]) [sage] 2023/12/19(火) 00:31:33.88 ID:z6V4TATi0 const element = 何々 で、elementがオブジェクトなら、キーに使ってはならない。 primitive なら、キーに使える この表記は、constがついていても、 そのオブジェクトの中身・内容は変えられるから、 本当の意味のconstではない Ruby では、オブジェクトをfreeze すると、浅い第1階層で変更できなくなる。 変更できなくなった部分に、次の第2階層のオブジェクトがあれば、そこは変更できる! だから完全に深い階層まで、再帰的にfreezeしないと、 本当の意味でfreezeにならない >>20 undefined はユーザーが作り出せないものだから、 普通は空を表すのに、null を使う Rubyのnil と同じ http://mevius.5ch.net/test/read.cgi/tech/1702111239/32
33: デフォルトの名無しさん (ワッチョイ 4f61-3PPy [180.23.197.208]) [sage] 2023/12/19(火) 01:47:20.29 ID:jkXgnxvQ0 >>30 MapやWeakMapを使おう http://mevius.5ch.net/test/read.cgi/tech/1702111239/33
34: デフォルトの名無しさん (ワッチョイ 4f10-n6T6 [180.12.82.129]) [] 2023/12/19(火) 12:32:27.47 ID:wIcY707L0 >>31 確認したら期待通りに動きました >>31-33 ありがとうございます http://mevius.5ch.net/test/read.cgi/tech/1702111239/34
35: デフォルトの名無しさん (ワッチョイ f613-r/Us [2400:2200:738:481a:*]) [sage] 2023/12/19(火) 14:48:44.22 ID:s0aDiAUA0 >>34 >>30のあとに console.log(obj[element]); と書くと何が表示されると思う? http://mevius.5ch.net/test/read.cgi/tech/1702111239/35
36: デフォルトの名無しさん (ワッチョイ f613-r/Us [2400:2200:738:481a:*]) [sage] 2023/12/19(火) 14:54:15.24 ID:s0aDiAUA0 あ、これだけだと前提が足りないか test_idもtest2_idもdivタグだとする http://mevius.5ch.net/test/read.cgi/tech/1702111239/36
37: デフォルトの名無しさん (アウアウウー Sa9b-KnN9 [106.146.121.126]) [sage] 2023/12/19(火) 15:48:03.09 ID:g4Os8oTba >>16 実用的はそれらは同値だと判断した方が良い 少なくともコード上分けるメリットはゼロ http://mevius.5ch.net/test/read.cgi/tech/1702111239/37
38: デフォルトの名無しさん (ワッチョイ 0274-mQNm [211.124.81.22]) [] 2023/12/20(水) 13:23:41.58 ID:QAvRAUPM0 JavaScriptで関数を変数に代入できると聞いて、 物理学で万物が粒子だけでなく波としての性質も合わせもつと聞いたときと同じくらいの衝撃を受けました。 どうもこのJavaScriptで関数を変数に代入できるという考えがしっくりこないのですが、どう考えれば受け入れられますか? http://mevius.5ch.net/test/read.cgi/tech/1702111239/38
39: デフォルトの名無しさん (ワッチョイ 0e33-YOgt [240b:10:8401:ab00:*]) [sage] 2023/12/20(水) 13:43:53.69 ID:bsiqnAom0 >>38 関数定義の構文 function f() {...} は関数オブジェクトを変数 f に代入してるだけなので g = f としたら g() で同じ関数呼べるし f = 123 と再代入したら f() で関数呼べなくなる f = () => {...} これで関数定義できることからもわかる http://mevius.5ch.net/test/read.cgi/tech/1702111239/39
40: デフォルトの名無しさん (ワッチョイ a262-Zz6i [2001:240:2428:b257:*]) [sage] 2023/12/20(水) 15:57:28.18 ID:5U5fDbVv0 >>38 Arrayだろうが関数だろうが変数に格納されてる値はポインタで 値を使う時に自動的にデリファレンスされてると思っとけばいいんじゃね 最近の言語ならどれも同じようなことできるけどね http://mevius.5ch.net/test/read.cgi/tech/1702111239/40
41: デフォルトの名無しさん (ワッチョイ 23cf-j1fn [2404:7a82:3de0:3500:*]) [sage] 2023/12/21(木) 01:46:28.22 ID:9dULh+b20 >>38 実態からはかけ離れるけど、メソッドが1個しかないオブジェクトの特別な扱いだと捉えるとどうだろう? 関数を変数に代入できるというのは、C言語のような古いものでも関数ポインタという形で実現してる。 関数はそのコードがメモリ上に配置されていて、関数の呼び出しはそのメモリのアドレスにジャンプするという形で行われるけど、そのジャンプ先のアドレスを変数に入れる感じ。 JavaScript ではクロージャって概念でもっと高度だけど、代入された変数には結局その関数の在りかが紐づけられてる。 http://mevius.5ch.net/test/read.cgi/tech/1702111239/41
42: デフォルトの名無しさん (スップ Sd42-MF53 [49.97.109.220]) [sage] 2023/12/21(木) 14:29:18.32 ID:0EYD168kd やろうと思えば各要素に関数の入った配列を作れるってことが http://mevius.5ch.net/test/read.cgi/tech/1702111239/42
43: デフォルトの名無しさん (ワッチョイ 2279-F8eA [61.192.187.100]) [sage] 2023/12/22(金) 21:46:22.69 ID:nFOKM4xK0 LISP→Scheme→Javascriptという歴史的経緯があるのでそこから理解すると判りやすいかも コードはLISPにとってはただのリストというデータ表現でしかなかったのでコードを変数に代入するというのはとても自然な事だった Schemeでレキシカルスコープが定義され一般的なクロージャの形になった 括弧だらけの構文は一般受けしないのでCっぽい構文のJavascriptが生まれた ざっくり書けばこういうわけです http://mevius.5ch.net/test/read.cgi/tech/1702111239/43
44: デフォルトの名無しさん (ワッチョイ 83ee-JyiE [2404:7a82:3de0:3500:*]) [sage] 2023/12/23(土) 01:26:50.34 ID:ZuCxSQpj0 >>43 分かりやすいかなぁw http://mevius.5ch.net/test/read.cgi/tech/1702111239/44
45: デフォルトの名無しさん (ワッチョイ 131b-taje [2400:2200:395:6245:*]) [sage] 2023/12/23(土) 02:10:18.87 ID:YHpw3jwo0 挙がってる各言語を知ってる人はなるほどと思うかもしれないけど そうでないならただの遠回りな気が http://mevius.5ch.net/test/read.cgi/tech/1702111239/45
46: デフォルトの名無しさん (ワッチョイ 3f79-Eb5K [61.192.187.100]) [sage] 2023/12/23(土) 18:09:35.53 ID:87/jUj+m0 >>39-41は代入できますって以上の説明はできてないし ショックを受けた38が知りたいのはそういう事じゃないんだろう Coders at WorkによればJavaacript設計者のブレンダン・アイクはSICPとSchemeの崇拝者で、 最初のアイデアはNetscapeブラウザにSchemeを持ち込むことだったとの事だよ まずはSICPでも読むといいんじゃないの http://mevius.5ch.net/test/read.cgi/tech/1702111239/46
47: デフォルトの名無しさん (ワントンキン MMdf-llxg [153.248.8.149]) [sage] 2023/12/23(土) 18:34:01.16 ID:seU0bwIPM 起源が知りたいわけじゃないと思うよ… http://mevius.5ch.net/test/read.cgi/tech/1702111239/47
48: デフォルトの名無しさん (ワッチョイ 3f48-taje [2400:2200:39a:a839:*]) [sage] 2023/12/23(土) 18:43:21.05 ID:RHehsd3K0 別に関数を変数に代入できるのはJavaScriptが初とか唯一ってわけじゃないからそこを掘り下げてもね http://mevius.5ch.net/test/read.cgi/tech/1702111239/48
49: デフォルトの名無しさん (ワッチョイ 3f79-Eb5K [61.192.187.100]) [sage] 2023/12/23(土) 20:16:48.44 ID:87/jUj+m0 >>47-48 起源というかね、こういうのは歴史的経緯を辿って理解した方が判りやすいという話よ 君らのつまらんレスを読むよりはずっとね Javascriptでやってる事は関数のポインタとはわけが違うんだから http://mevius.5ch.net/test/read.cgi/tech/1702111239/49
50: デフォルトの名無しさん (ワントンキン MMdf-llxg [153.248.8.149]) [sage] 2023/12/23(土) 20:22:17.26 ID:seU0bwIPM >>49 それは絶対にない>わかりやすい http://mevius.5ch.net/test/read.cgi/tech/1702111239/50
51: デフォルトの名無しさん (ワッチョイ 7f95-UZ2u [240b:12:6820:b000:*]) [sage] 2023/12/23(土) 20:30:53.27 ID:1KvsNCZl0 歴史を追いかけられるくらい論理的に文章組み立ててくれないか? http://mevius.5ch.net/test/read.cgi/tech/1702111239/51
52: デフォルトの名無しさん (ワッチョイ cfcf-x2Sm [153.206.76.80]) [sage] 2023/12/23(土) 20:34:16.96 ID:6J3b/0Sr0 >Javascriptでやってる事は関数のポインタとはわけが違うんだから LISPが違うのはわかるけどJavaScriptは関数ポインタとそんなに違うんだっけ? http://mevius.5ch.net/test/read.cgi/tech/1702111239/52
53: デフォルトの名無しさん (ワッチョイ 3f48-taje [2400:2200:39a:a839:*]) [sage] 2023/12/23(土) 20:55:11.83 ID:RHehsd3K0 >>49 賛同されなかったからつまらんレスとか言い出すのは大人げないよ http://mevius.5ch.net/test/read.cgi/tech/1702111239/53
54: デフォルトの名無しさん (アウアウウー Sa17-Krj3 [106.155.25.196]) [sage] 2023/12/24(日) 14:20:26.14 ID:eKX/4s7na >>52 だいぶ違うぞ クロージャって言葉知ってる? 定義された場所のローカル変数を参照できるの そしてローカル変数がクロージャによってキャプチャされたら その変数はクロージャが死なない限りずっと保持される これは関数ポインタとは訳が違う そしてそれこそがscheme信者のアイクが取り入れたかったもの クロージャじゃないなら関数ポインタと大して変わらんっちゃ変わらん http://mevius.5ch.net/test/read.cgi/tech/1702111239/54
55: デフォルトの名無しさん (ワッチョイ 13b1-l39z [2001:240:242e:2802:*]) [sage] 2023/12/24(日) 15:20:54.55 ID:D70pmwho0 >>54 関数がクロージャを形成するかどうかと 関数を受け渡すときに関数へのポインタを使ってるかどうかは直交した別の問題 実際どのJavaScriptエンジンも関数へのポインタを使って変数への代入や関数の受け渡しを実現している C言語はクロージャをサポートしないのでC言語の関数ポインタを使ってもクロージャにはならないのは当たり前 もう少し言えば関数を受け渡し可能にするためのスコープ解決の仕組み/ルールと受け渡す際に関数へのポインタを使ってるかどうかは別の問題 http://mevius.5ch.net/test/read.cgi/tech/1702111239/55
56: デフォルトの名無しさん (ワッチョイ 13b1-l39z [2001:240:242e:2802:*]) [sage] 2023/12/24(日) 15:53:19.34 ID:D70pmwho0 別スレで見かけたトンデモ記事書いてる人だと思うけどレキシカルスコープの話と第一級関数の話とレキシカルスコープを使ったクロージャによって第一級関数を実現する話を混同してるんじゃないか Schemeはレキシカルスコープを使ったクロージャという考え方を広く普及させた言語ではあるがレキシカルスコープや第一級関数はScheme以前の昔から実現されてたものだし レキシカルスコープを使ったクロージャもScheme以前の昔からあった考え方 Schemeが初めてレキシカルスコープを定義したかのように書くのはやめよう http://mevius.5ch.net/test/read.cgi/tech/1702111239/56
57: デフォルトの名無しさん (スップ Sd5f-96gJ [1.72.3.74]) [sage] 2023/12/24(日) 16:19:26.43 ID:+dT+Yo8pd >>56 ちょっと指摘させてもらうと 誰も起源の話なんてしてないよ http://mevius.5ch.net/test/read.cgi/tech/1702111239/57
58: デフォルトの名無しさん (アウアウウー Sa17-Krj3 [106.155.24.145]) [sage] 2023/12/24(日) 16:48:55.22 ID:awd0q31Fa >>56 いや別に起源とかはどうでも良くて関数ポインタとは違うよって話をしてるだけなんだけど http://mevius.5ch.net/test/read.cgi/tech/1702111239/58
59: デフォルトの名無しさん (ワッチョイ f367-l39z [2001:240:242a:1b50:*]) [sage] 2023/12/24(日) 18:14:29.42 ID:uJ8b4azy0 >>57 >>43がしてるでしょ この人同じように間違ったことをあちこちで書いてるから指摘しただけ http://mevius.5ch.net/test/read.cgi/tech/1702111239/59
60: デフォルトの名無しさん (ワッチョイ cfb1-llxg [2400:4050:afe0:3700:*]) [sage] 2023/12/24(日) 19:40:11.40 ID:3LVtZ1UM0 彼は命題論理が理解できなくて、120年前の古文書まで読み返して、それでも分からなくて200年前の哲学書まで遡った結果、今でも命題論理が分かってないって人間だから、彼の歴史的経緯を遡れば理解しやすくなるって主張は実は彼自身によって反証されてたりする http://mevius.5ch.net/test/read.cgi/tech/1702111239/60
61: デフォルトの名無しさん (ワッチョイ 8321-JyiE [2404:7a82:3de0:3500:*]) [sage] 2023/12/24(日) 22:35:22.54 ID:ietP5AWI0 >>38 が分かりやすかったかどうか答えてくれれば解決だな http://mevius.5ch.net/test/read.cgi/tech/1702111239/61
62: 38 (ワッチョイ bf74-uzyf [211.124.81.22]) [] 2023/12/24(日) 23:33:56.01 ID:M3Ha8RQ30 さっぱり分からん http://mevius.5ch.net/test/read.cgi/tech/1702111239/62
63: デフォルトの名無しさん (ワッチョイ cfb1-llxg [2400:4050:afe0:3700:*]) [sage] 2023/12/24(日) 23:38:36.92 ID:3LVtZ1UM0 おっIP同じやし38本人やん まあそうだよな。あの説明でわかりやすく人間なんておらんやろ http://mevius.5ch.net/test/read.cgi/tech/1702111239/63
64: デフォルトの名無しさん (ワッチョイ 8f56-ryOq [2001:268:9af4:708a:*]) [sage] 2023/12/25(月) 06:04:30.08 ID:G5r1XQvR0 クロージャは第一級市民関数。 関数外のローカル変数などの文脈を取り込む。 つまり、スコープがゆるい 一方、Ruby の関数はスコープがきつくて、 関数外のローカル変数を通さないので、第一級関数ではない。 ただし、ブロックはブロック外のローカル変数を通すから、クロージャ 他に、レシーバーとメソッドを持ち運ぶ、メソッドオブジェクトもある http://mevius.5ch.net/test/read.cgi/tech/1702111239/64
65: デフォルトの名無しさん (ワッチョイ d301-h9f0 [60.89.160.66]) [sage] 2023/12/25(月) 08:32:20.98 ID:xnbzJK+y0 >>38,62 何がどうわからないのか、を詳しく説明してくれ。 具体的なところがさっぱり分からん。 http://mevius.5ch.net/test/read.cgi/tech/1702111239/65
66: デフォルトの名無しさん (ワッチョイ 3363-llxg [180.47.35.21]) [sage] 2023/12/25(月) 21:05:49.32 ID:HhwD874b0 そりゃそもそもLISPやSchemeを全く知らない人だったんでしょ 分かりやすくなる要素なんて1ミリもないわな http://mevius.5ch.net/test/read.cgi/tech/1702111239/66
67: デフォルトの名無しさん (アウアウウー Sa17-Krj3 [106.155.20.162]) [sage] 2023/12/25(月) 21:28:48.99 ID:XllulW5ca struct Closure { struct Env env; struct Function func; }; Closureの最もシンプルな実装 Envはキャプチャしたローカル変数を保持する環境 Functionは関数ポインタやらを保持してるオブジェクトだと思ってくれ たったこれだけのことに過ぎない 関数ポインタにenvが追加されただけのものだ http://mevius.5ch.net/test/read.cgi/tech/1702111239/67
68: デフォルトの名無しさん (ワッチョイ ef1a-l39z [2001:240:242d:fdfa:*]) [sage] 2023/12/26(火) 01:40:31.83 ID:XlP1bh7b0 クロージャやレキシカルスコープがどうやって実現されてるかという質問なら[[Environment]]のことを教えてあげるのはいいと思うけど そういう話は誰もしてないからねぇ http://mevius.5ch.net/test/read.cgi/tech/1702111239/68
69: デフォルトの名無しさん (ワッチョイ 6318-taje [2400:2200:39a:aa64:*]) [sage] 2023/12/26(火) 12:17:20.00 ID:iZHdB3Jl0 結局のところ>>38の問題って関数は変数に代入できないものだっていう固定観念を他の言語に持ち込んでるところだと思う プログラミング言語なんて所詮ヒトがそれぞれの都合で作ったものであって言語が違えば考え方や常識も違う そこを理解して他の言語の固定観念を持ち込まないようにしないとこの先もしっくりこないこと、受け入れられないことだらけだろう http://mevius.5ch.net/test/read.cgi/tech/1702111239/69
70: デフォルトの名無しさん (ワッチョイ efc9-l39z [2001:240:247c:3ea8:*]) [sage] 2023/12/26(火) 18:41:41.07 ID:DtaEhUmP0 関数を変数に直接代入できないCの系譜の言語が最も広く普及してるから そういう言語をやってきた人が関数を変数に直接代入できる言語に初めて接したら>>38のように驚くのは極々自然のこと 何が固定観念なのかなんてそれが覆るまで分からないんだから固定観念を持ち込むなとか言っても何の役にも立たないよ http://mevius.5ch.net/test/read.cgi/tech/1702111239/70
71: デフォルトの名無しさん (ワッチョイ 3f27-taje [2400:2200:391:e73b:*]) [sage] 2023/12/26(火) 19:02:16.70 ID:ar+aUrwZ0 今回のことで固定観念だったと気づければそれでいいと思うよ そうすれば次からは疑ってかかることができるわけだし http://mevius.5ch.net/test/read.cgi/tech/1702111239/71
72: デフォルトの名無しさん (オイコラミネオ MMcf-zvIc [150.66.117.40]) [sage] 2024/01/05(金) 08:36:00.72 ID:kvxPBg+iM 糞長い式が真値のときだけ変数に代入したくて if (糞長い式) { X = 糞長い式 } と書いてるんですが糞長い式を一度で済ますにはどうしたらいいですか http://mevius.5ch.net/test/read.cgi/tech/1702111239/72
73: デフォルトの名無しさん (ワッチョイ 1f74-rafF [211.124.81.22]) [] 2024/01/05(金) 09:10:31.40 ID:PLcvVAqJ0 >>72 いますぐ糞をして寝ることだ。 糞! http://mevius.5ch.net/test/read.cgi/tech/1702111239/73
74: デフォルトの名無しさん (ワッチョイ 1f74-rafF [211.124.81.22]) [] 2024/01/05(金) 09:12:10.60 ID:PLcvVAqJ0 X = 糞長い式 ? 糞長い式2 : X; http://mevius.5ch.net/test/read.cgi/tech/1702111239/74
75: デフォルトの名無しさん (ワッチョイ 0b30-3ajw [150.9.34.120]) [sage] 2024/01/05(金) 09:26:22.59 ID:B0YNzjLy0 Y = 糞長い式 if (Y) { X = Y } http://mevius.5ch.net/test/read.cgi/tech/1702111239/75
76: デフォルトの名無しさん (ワッチョイ ef85-NRV/ [240b:10:8401:ab00:*]) [sage] 2024/01/05(金) 09:52:24.63 ID:UVxCqy8T0 2回評価したくないときもあるし>>75 https://docs.python.org/ja/3/whatsnew/3.8.html#assignment-expressions そこまで糞長くないならセイウチ演算子 http://mevius.5ch.net/test/read.cgi/tech/1702111239/76
77: デフォルトの名無しさん (ワッチョイ 4b61-7PFe [220.104.177.51]) [sage] 2024/01/05(金) 11:11:29.09 ID:j+cl8so10 X = 糞長い式 || X; わかりやすい>>75でいいと思うわ http://mevius.5ch.net/test/read.cgi/tech/1702111239/77
78: デフォルトの名無しさん (ワッチョイ efbb-bJ3A [240f:108:3018:1:*]) [sage] 2024/01/05(金) 18:15:32.86 ID:xFVV62H30 カルノー図やクワイン・マクラスキー法で書けないほど複雑だと どうにもならない if else if else にうまく展開するか switch 文をうまく使うとかかなあ http://mevius.5ch.net/test/read.cgi/tech/1702111239/78
79: デフォルトの名無しさん (ワッチョイ fd9f-stEI [122.133.203.183]) [] 2024/01/08(月) 08:24:08.50 ID:HV7sMHf30 質問させていただきます。 タグの属性onclick等で設定したイベント処理では 処理側の関数ではeventオブジェクトを参照出来ないのでしょうか? 色々探してるのですが見つけられなくて・・・よろしくお願い致します。 http://mevius.5ch.net/test/read.cgi/tech/1702111239/79
80: デフォルトの名無しさん (ワッチョイ 2379-e2pS [61.192.187.100]) [sage] 2024/01/08(月) 10:20:56.34 ID:FNFcnj+v0 >>79 onclick属性のイコールの右側にある値は無名関数をそのままラップしたもので、eventオブジェクトはその関数の第一引数に渡される つまり<タグ onclick="func(arguments[0]);">とすれば取得できる http://mevius.5ch.net/test/read.cgi/tech/1702111239/80
81: デフォルトの名無しさん (ワッチョイ 8d43-iBaE [114.148.50.247]) [] 2024/01/08(月) 10:51:13.68 ID:adS5ZNXz0 >>79 引数で渡されてくるけど? HTMLのタグの中に書く事例では意味も解らずその引数を省略しているのが多い それより、今どきはHTMLと分離した、こっちの書き方がおすすめ https://developer.mozilla.org/ja/docs/Web/API/Element/click_event http://mevius.5ch.net/test/read.cgi/tech/1702111239/81
82: デフォルトの名無しさん (ワッチョイ 1501-QrVU [60.89.10.107]) [sage] 2024/01/08(月) 13:07:07.19 ID:cXOMuDOl0 >>79 onclick属性値の中でもeventは使える。 <p onclick="console.log(event);"> ところで、「処理側の関数」とは? http://mevius.5ch.net/test/read.cgi/tech/1702111239/82
83: デフォルトの名無しさん (ワッチョイ db9b-5x1m [240b:10:8401:ab00:*]) [sage] 2024/01/08(月) 13:58:47.00 ID:pIW6TUAd0 ブラウザの開発者ツールにあるデバッガをつかえば気づける 止めたところの環境が丸見えになるから http://mevius.5ch.net/test/read.cgi/tech/1702111239/83
84: デフォルトの名無しさん (ワッチョイ fd2e-dvWY [2001:268:9a3d:8302:*]) [sage] 2024/01/08(月) 20:55:54.87 ID:gJaMg8aw0 例えば、jQuery なら、これで5つのキーのkeydown をキャッチできる $( function ( ) { $( 'body' ).keydown ( function( e ) { switch( e.key ) { // 32:空白、37:←、38:↑、39:→、40:↓ case " " : case "ArrowLeft" : case "ArrowRight" : case "ArrowUp" : case "ArrowDown" : console.log( e.key ); } } ) } ); http://mevius.5ch.net/test/read.cgi/tech/1702111239/84
85: デフォルトの名無しさん (ワッチョイ 434b-NOlf [240b:12:6820:b000:*]) [sage] 2024/01/08(月) 21:08:17.54 ID:Jg6SbkUr0 <button onclick="hoge(this)">ってやると意図しない動きすることあるからルールで禁止してるところもあるよね http://mevius.5ch.net/test/read.cgi/tech/1702111239/85
86: デフォルトの名無しさん (ワッチョイ 0510-JApz [180.12.82.129]) [] 2024/01/11(木) 09:49:12.76 ID:L0eqWFW50 子要素は含まないようにelementを取得するにはどうすればいいですか? これだとテーブルの中のフォームをスライドさせてもalertが表示されてしまいます。 子要素は含まないテーブルのみのelementを取得することはできますか? <table style="width:500px;height:300px;background:#ffff00" id="aaa"> <tr><td><input type="range" style="width:inherit"></td></tr> </table> <スクリプト> const elm = document.getElementById("aaa"); elm.addEventListener( "mousedown", function(e){alert("www");} ); </スクリプト> http://mevius.5ch.net/test/read.cgi/tech/1702111239/86
87: デフォルトの名無しさん (ワッチョイ b536-QPx5 [2400:4052:5062:9ff0:*]) [] 2024/01/11(木) 10:30:37.07 ID:8+5yXztZ0 何をやりたいのかがわからない説明 とりあえずプログラムを意識せずに やりたいことの要件を日本語でよろしく http://mevius.5ch.net/test/read.cgi/tech/1702111239/87
88: デフォルトの名無しさん (ワッチョイ 2319-dvWY [2001:268:c0d0:700e:*]) [sage] 2024/01/11(木) 10:35:49.26 ID:oja63d6W0 function(e){ // input要素以外をクリックした場合の処理 if (e.target.tagName !== 'INPUT') { alert("www"); } } http://mevius.5ch.net/test/read.cgi/tech/1702111239/88
89: デフォルトの名無しさん (ワッチョイ 0510-zseD [180.12.82.129]) [] 2024/01/11(木) 13:03:40.31 ID:L0eqWFW50 >>87 子要素を除外したelementを取得したいってことっす >>88 ありがとうございます試してみます http://mevius.5ch.net/test/read.cgi/tech/1702111239/89
90: デフォルトの名無しさん (ワッチョイ b536-QPx5 [2400:4052:5062:9ff0:*]) [] 2024/01/11(木) 14:18:15.97 ID:8+5yXztZ0 それ、バブリングを意識しないとダメかもよ http://mevius.5ch.net/test/read.cgi/tech/1702111239/90
91: デフォルトの名無しさん (ワッチョイ 231b-JApz [2400:4151:a4a0:6500:*]) [] 2024/01/11(木) 14:44:36.31 ID:bfPtSoSL0 先ほどは手元にソースコードがなかったので即席で質問してしまいました。 やりたいことはテーブル部分でタッチムーブしたときブラウザのスクロールを禁止にしたいのですが、 テーブルにあるスライダーまでロックされて動かせないようになってしまうので、 スライダーを除外したテーブル部分のelementだけ取得できれば上手くできるのでは?と思ったから先ほどのような質問をしてしまいました。 ようするにブラウザのスクロール禁止にするけどスライダーは動かせるようにしたいんです。 <table style="width:500px;height:300px;background:#ffff00" id="aaa"> <tr><td><input type="range" step="1" min="0" max="10" value="1"></td></tr> </table> <スクリプト> const elm = document.getElementById("aaa"); elm.addEventListener( "touchmove", function(e){ e.preventDefault(); //ブラウザのスクロールを禁止にする } ); </スクリプト> http://mevius.5ch.net/test/read.cgi/tech/1702111239/91
92: デフォルトの名無しさん (ワッチョイ 85ae-Lq2F [2409:251:9020:2100:*]) [sage] 2024/01/11(木) 15:08:55.09 ID:k0wEY4GK0 よく分からんが、cssでそんなのがあるな https://developer.mozilla.org/ja/docs/Web/CSS/overscroll-behavior http://mevius.5ch.net/test/read.cgi/tech/1702111239/92
93: デフォルトの名無しさん (ワッチョイ 1501-JApz [60.132.249.142]) [sage] 2024/01/11(木) 16:34:13.87 ID:tWeEPqJO0 >>91 preventDefault()をstopPropagation()に変えるだけでいいかもしれない この場合は多分preventDefault()はいらない http://mevius.5ch.net/test/read.cgi/tech/1702111239/93
94: デフォルトの名無しさん (ワッチョイ 8d43-n7AJ [114.166.5.254]) [] 2024/01/11(木) 22:20:25.19 ID:vnpK4WpS0 clickやmousedownに仕込む話したど思ったのでバブリングを指摘したけれど スマホの場合にスライダー操作でスクロールしちゃうのを止めたい場合の話なら別問題 スクロールはブラウザ側の仕組みでDOMのイベントバブリングを止めてもダメ それとターブルじゃなくて、スライダーをtouchmoveしたときにスクロールを止めたいのじゃないですか 要件としては スライダーのtouchstartでブラウザのスクロール機能を無効にして スライダーのtouchendでブラウザのスクロール機能を有効に戻す スクロールの有効・無効は、スクロール要素のcssのスタイルで制御できるので、JavaScriptでstyle要素のoverflowYまたはoverflowXを'hidden'または'auto'と値を切り替える http://mevius.5ch.net/test/read.cgi/tech/1702111239/94
95: デフォルトの名無しさん (ワッチョイ 231d-JApz [2400:4151:a4a0:6500:*]) [] 2024/01/11(木) 22:41:54.15 ID:bfPtSoSL0 >>93 ありがとうございます。 スライダーのelementにe.stopPropagation()をしたらスライダーを動かせるようになりました >>94 ありがとうございます。試してみます。 http://mevius.5ch.net/test/read.cgi/tech/1702111239/95
96: デフォルトの名無しさん (ワッチョイ 85e7-UQX2 [2404:7a87:26a0:9e00:*]) [] 2024/01/13(土) 03:22:15.94 ID:bBKen2/T0 すいません、vueの質問はここでいいですか? http://mevius.5ch.net/test/read.cgi/tech/1702111239/96
97: デフォルトの名無しさん (ワッチョイ e3a8-57IR [2400:2200:45d:4c3b:*]) [sage] 2024/01/13(土) 11:42:05.46 ID:sUiBS1y50 ↓あたりにどうぞ JavaScriptフロントエンド総合 Part.11 https://mevius.5ch.net/test/read.cgi/tech/1660898820/ Vue vs React vs Angular vs Svelte Part.11 https://mevius.5ch.net/test/read.cgi/tech/1660969032/ http://mevius.5ch.net/test/read.cgi/tech/1702111239/97
98: デフォルトの名無しさん (ワッチョイ ad01-1c9G [126.168.252.135]) [] 2024/01/14(日) 17:21:53.60 ID:vAN1c9wS0 ありがとうございます http://mevius.5ch.net/test/read.cgi/tech/1702111239/98
99: デフォルトの名無しさん (ワッチョイ 4d7c-MQtI [122.212.16.94]) [sage] 2024/01/26(金) 17:25:13.36 ID:2+81uqBd0 WebフロントエンドでのJavaScriptを勉強中です 「jQueryでできることは素のJSでもできるのがほとんどになったから、jQuery不要」という話しが出てきますが、 エレメントの操作などで、素のJSだと記述する文字が長く、jQueryだとすごく短く書けるので、それだけでも十分便利と感じています。 document.querySelector('selector') ⇒ $('selector') jQuery不要の場合、効率良く書くために代わりに何を使っているのか気になります。 大型のフレームワークとかでしょうか?フレームワーク使うと、ここのエレメントの参照・操作などはもはや不要になるのでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1702111239/99
100: デフォルトの名無しさん (ワッチョイ a300-kvtp [221.118.182.146]) [sage] 2024/01/26(金) 19:57:32.14 ID:vs+8Yc4d0 jQueryの技術覚えてもjQueryにしか使えない。素のJS技術はどんなフレームワーク使っても役に立つ http://mevius.5ch.net/test/read.cgi/tech/1702111239/100
101: デフォルトの名無しさん (ブーイモ MMe9-pDPK [202.214.125.44]) [sage] 2024/01/26(金) 20:11:15.77 ID:Uafucq2BM >>99 コード補完機能(任意のスニペット呼び出しを含む)のある現代のエディタではその全てをキータイプする必要は無いし、どうしても短く書きたいならショートハンドを定義すればいい たとえば、5ch互換掲示板ビューアであるブラウザ拡張機能「read.crx 2」では、同拡張機能の共同メンテナの方が作成したjQueryライク(互換ではない)なショートハンドライブラリ「shortQuery.js」が使われてる(だいぶ前にいわゆる「脱jQuery」のお供として導入されたハズ) なんにせよ、初心者が今からjQueryを学ぶのは悪手 http://mevius.5ch.net/test/read.cgi/tech/1702111239/101
102: デフォルトの名無しさん (ワッチョイ e35c-y2cH [211.3.240.74]) [sage] 2024/01/26(金) 20:12:23.71 ID:Z5KyuX5d0 素のjs分からずにjquery使えるわけないだろ http://mevius.5ch.net/test/read.cgi/tech/1702111239/102
103: デフォルトの名無しさん (ワッチョイ 433e-K/rq [2400:2200:7d4:c4d1:*]) [sage] 2024/01/26(金) 21:41:55.02 ID:bxMKu9aD0 >>99 その通り ReactやVueに代表されるような昨今のフレームワークは開発者がDOMを直接操作しない http://mevius.5ch.net/test/read.cgi/tech/1702111239/103
104: デフォルトの名無しさん (ブーイモ MM43-kvtp [49.239.68.29]) [sage] 2024/01/26(金) 21:48:25.16 ID:KJ09lp1IM そう思ってるとこんなん当然知ってますよねみたいなノリでevent処理とかrefとか出て詰むゾ http://mevius.5ch.net/test/read.cgi/tech/1702111239/104
105: デフォルトの名無しさん (ワッチョイ f95a-xxv9 [2400:4052:5062:9ff0:*]) [sage] 2024/01/28(日) 11:39:44.53 ID:WhNL7KNN0 >>99 jQueryの現在はHPフロントエンジニアさんが 抱負なライブラリでHPに花をそえるために使っているだけ ウェブアプリ屋さんはjQueryが邪魔くさい時があるので使わない どの分野を目指すのかが決まっているなら その分野で何が主流なのかを見極めたほうがいい http://mevius.5ch.net/test/read.cgi/tech/1702111239/105
106: デフォルトの名無しさん (ワッチョイ 7386-XCDl [240b:12:6820:b000:*]) [sage] 2024/01/28(日) 19:30:17.30 ID:1z8oB9tQ0 動的に作られる特定の要素にだけイベント追加するのがラク jQueryがバニラJSに勝ってる唯一の点だけど、そういう処理を入れるくらいDOMの操作使ったアプリ作るなら他のフレームワークのほうが良いだろう http://mevius.5ch.net/test/read.cgi/tech/1702111239/106
107: デフォルトの名無しさん (ワッチョイ e9a9-Y1Fy [240d:1a:790:2b00:*]) [sage] 2024/01/28(日) 20:16:55.07 ID:9hZosd/l0 ゆうて古から続くjqueryの資産はいたる所にあるから、読めることくらいは出来ないとな 難しいもんではないんだし http://mevius.5ch.net/test/read.cgi/tech/1702111239/107
108: デフォルトの名無しさん (ワッチョイ 1901-fC/B [60.102.190.56]) [sage] 2024/01/28(日) 23:52:21.72 ID:Plt7vTfv0 >>106 バニラでも祖先ノードでmatches(selectors)を使えば対応可能なので、それほどjQueryに優位性はない気がする。 それから、jQueryはバブリングフェースのみ対応という弱点がある。 バブリングしないイベントタイプに関してはaddEventListener()に優位性がある。 http://mevius.5ch.net/test/read.cgi/tech/1702111239/108
109: デフォルトの名無しさん (ワッチョイ 99ea-Mq/i [2404:7a80:8400:8900:*]) [sage] 2024/01/29(月) 01:34:06.63 ID:fIBxeYXl0 他から持ってきたコードが指すjQueryが最近のじゃなくて だれが互換性担保するのってのが一番困る jQueryを直接つかう分には検証できるけど 依存しているライブラリは採用せんでほしい http://mevius.5ch.net/test/read.cgi/tech/1702111239/109
110: デフォルトの名無しさん (ワッチョイ f95a-w/9U [2400:4052:5062:9ff0:*]) [] 2024/01/30(火) 09:12:09.86 ID:GdANFjKZ0 jQuery使いの人は行き当たりばったりな人が多い jQueryライブラリファイルの読み込みが沢山あってなんじゃこりゃみたいな http://mevius.5ch.net/test/read.cgi/tech/1702111239/110
111: デフォルトの名無しさん (ワッチョイ 1901-DQL8 [60.132.249.142]) [sage] 2024/01/30(火) 11:06:06.79 ID:kUs11O+K0 jQueryが出た頃はSelectors APIもなかったからな 行き当たりばったりというより昔の標準APIが貧弱でライブラリに頼るしかなかった http://mevius.5ch.net/test/read.cgi/tech/1702111239/111
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 197 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.013s