jQuery 質問スレッド vol.8
■ このスレッドは過去ログ倉庫に格納されています
JavaScriptでDOM用ライブラリであるjQueryのスレです。 次スレは>>950 が>>2 のテンプレ案(本スレで改善案があれば考慮)を元に立ててください このスレはjQueryやjQuery UIの使い方やjQueryプラグインの作り方を質問するスレです。 jQueryを使って作る側のスレであって、こんなプラグインありませんか?と聞くスレではありません。 そういうのは自分で探してください。 ろくにサポートもされてなさそうな野良プラグインの使用はおすすめしません。 JavaScriptの質問は関連スレで質問して下さい。 ■前スレ jQuery 質問スレッド vol.7 https://mevius.5ch.net/test/read.cgi/hp/1478055094/ ■関連スレ JavaScript の質問用スレッド vol.130 https://mevius.5ch.net/test/read.cgi/hp/1501503056/ ECMAScript デス 6 https://mevius.5ch.net/test/read.cgi/tech/1483332914/ JavaScript ライブラリ総合質問所 vol.5 https://echo.5ch.net/test/read.cgi/hp/1465399470/ >>438 は問題に対する解を持っている data君は問題とは思っていないし、全く別のベクトルで問題を指摘してる お互いに問題とは思っていないのだから、平行線なのは当然の事 だが、data君は>>438 が導き出した答えの意味を理解してないだろうな >>495 じゃあ理解してるお前が説明してみせたら? そしたら逃げるんだよなーw data君が気が付いてない問題は、スコープでしょ 属性は公開されているわけだし、その答えに行き着くのは理解できるけどね 誰かここでスコープが関係してくる理由説明できる?誰もできないと思う 多分こいつ、自作自演してる。書いた本人だわ 自分にしか通じないことしか言ってない 今の属性の話に変数のスコープは関係ないからねw 関係あるというのなら、どういうふうに関係があるのか 説明してもらおうか。変数のスコープの説明じゃないぞ 変数のスコープが今回のclass属性の代わりにdata-*属性を使うと 管理しやすくなるという話にどう関わってくるのかの説明だ 解決してるのに解決してないと言い張ってどうしてもそれを使わないと納得がいかないスレ 何とも、面倒くさい奴だな WeakMapを使ってコードを書く場面を想定しろ > 静的につけたclassが動的処理で消える問題 静的処理とは別に動的処理だけで参照できる場所にデータを持てばよい WeakMapで作られた変数のスコープはグローバルスコープにしなければ、外部から干渉されない 当然、静的処理でマークアップされたclass属性やdata-*属性と衝突する事もない 属性はDOM APIによって開けた環境にあるので、いくらでも外部干渉を受ける つまり、属性は静的処理と動的処理が衝突してしまうという事だ >>502 じゃあ属性を使わずそのWeakMapを使って cssで色をつける方法を書いてください ちなみにdata-*属性を使った場合はこう書きます [data-hoge="foo"] { color: red } data君がどう言い訳するのかと思ったら、「論点のすり替え」か classの代わりとして使えないんじゃ、意味ないですからね 論点は最初からclassの代わりとして使えることが条件ですが? >>498 スコープ君は質問者ではないよ おれもなぜスコープが出てくるのかわかりませぬ 結局、変数のスコープで合ってるじゃん 自分で気が付かなかった事実を認めたくないから話題を逸らしてるんでしょ たぶん、data-*属性と聞いて、jQueryのdata()メソッド、要素に紐付いたデータを持たせたい という話と勘違いしちゃったんでしょうねw そんな話はしてない。もともとclassを使おうとしていて、管理が面倒くさい どうにかならないかって話で、data-*属性をつかえばいいという流れ data-*属性はclassの代替として使用できる。そして管理が楽になる (classは名前無しで値しか入れられないが、data-*属性は、data-名前=値という組みで入れられるから) >>509 > 結局、変数のスコープで合ってるじゃん 日本語怪しい。わざと曖昧なことを言って論点をすり替えようとしている。 変数のスコープで何があってるのか。 そして今回の話にどう絡んでくるのか言ってみ classの代替としてWeakMapが使えないのはすでに証明済み WeakMapを使う時点で変数に格納するのは分かり切っているんだが WeakMapを使う時点ってなんのこと? class属性の代替としてdata-*属性を使うと管理が簡単だよ CSSでも属性セレクタで使えるし って話の中に、いきなり無関係のWeakMapがでてきたんでしょ? WeakMapを使う"時点" なんてものは存在してない >どうにかならないか まあ質問者はそんなこと言ってなくて回答者が勝手に作って話進めてるだけなんだけどなw 言ってますがなw 142 名前:Name_Not_Found[sage] 投稿日:2018/01/28(日) 11:50:24.50 ID:??? >>140 それだと静的に付けたclassまで消えちゃうじゃん 143 名前:Name_Not_Found[sage] 投稿日:2018/01/28(日) 17:27:37.90 ID:??? >>142 そうなんだけど・・・の管理が面倒で 変更の度にそこも付け加えなくてはならなくて 最初つけるclassは1,2個と少ないので楽かなと 質問者はありかなしかだけ そのだいぶ後に追記してるだけ 俺は質問者ではないよ ただの傍観者で「WeakMapを使えばいいのに」と思ったから横から口をはさんだだけ 少なくとも、>>438 の問題はCSS適用外の仕様で考えているから、>>440 や>>503 に対しては「何を頓珍漢な事を」ぐらいにしか思っていない 元々、静的処理とは別のスコープを持つことを意図しているわけで、CSSが適用できないのは当然の事だ 何か知らんが、俺が取り上げている問題を無視して、俺が取り上げてもいない問題を勝手に持ってきて反論してくるから、正直疲れる 読解力がないというよりも読む気が無くて、自分の考えしか頭にないタイプなのかね >>513 静的につけたclassが動的処理で消える問題 質問を自分仕様に変えて自慢げに書くスレ 質問者が言ってもいないことを言ったと言い張るスレ 質問者が問題としてないことを問題として扱うスレ ま、これはいいか 「こういう仕様ならこういう方法もあるよ」くらいなら > ま、これはいいか > 「こういう仕様ならこういう方法もあるよ」くらいなら 俺もそう思う 条件付き提案に「そんな条件は許さん」と食って掛かる人間が一番困る >>518 class属性の代わりにdata-*属性を使うという話をしてる その話にWeakMapが頓珍漢な答であることは明白 だから黙ってろって話 日本語読めないのかな? 142 名前:Name_Not_Found[sage] 投稿日:2018/01/28(日) 11:50:24.50 ID:??? >>140 それだと静的に付けたclassまで消えちゃうじゃん 143 名前:Name_Not_Found[sage] 投稿日:2018/01/28(日) 17:27:37.90 ID:??? >>142 そうなんだけど・・・の管理が面倒で 変更の度にそこも付け加えなくてはならなくて 最初つけるclassは1,2個と少ないので楽かなと ---------- $('.aaa').removeClass().addClass('aaa'); とすると、.aaaに静的に付けたその他のクラスが消えてしまうという指摘を >>142 でやっていて 質問者>>143 のレスの冒頭、 それはそうなんだけど。と認めている。 そして・・・の管理が面倒だけど、最初つけるclassは1,2個で楽かなといってる 最初つけるclassが何個でもいいし・・・の管理も楽になる手段として data-*属性を使う方法を提案している。 ここまではいいよな? data君はちゃぶ台返しをするから好きになれん 「スコープって何よ?⇒説明⇒いや、そもそもWeakMapの話なんてしてないから」 他人に説明させておいてそれはないだろ 「そもそもWeakMapの話なんてしてない」が結論ならスコープの説明を求める必要がない >>525 静的classと動的挿入classの管理が面倒だから分割したいって要件に読めるけど 「静的classと動的挿入classの管理が面倒だから分割したいって」ってどういう意味ですか? 他の人、誰か理解できる人いますか? これ自分用語で誰にも理解できない文章ですよね 静的につけたclass名と動的につけたclass名が衝突してしまう可能性があるが、名前を管理するのが面倒だから処理を分割したい、という意味だろ スコープの下りを読めば分かるだろうに >>526 > data君はちゃぶ台返しをするから好きになれん ちゃぶ台? 最初からスコープ関係ないだろって言ってんだろ ↓ほれみろや。俺は関係しないと最初から言ってる。 498 自分:Name_Not_Found[sage] 投稿日:2018/02/16(金) 23:29:53.34 ID:??? 誰かここでスコープが関係してくる理由説明できる?誰もできないと思う 500 名前:Name_Not_Found[sage] 投稿日:2018/02/16(金) 23:35:27.92 ID:??? 今の属性の話に変数のスコープは関係ないからねw 関係するというのなら説明してみろって話 そして説明を聞いて、やっぱりスコープ関係してないじゃんかという結論 最初からスコープ関係ないって話をしてる。 >>529 だからスコープ関係ないって言ってんだろうが いい加減にしろ 「何を頓珍漢な事を」ぐらいにしか思っていないぞ >>529 > 静的につけたclass名と動的につけたclass名が衝突してしまう可能性があるが、 静的に付けたclass名がaaaで、動的に付けたclass名もaaaで 衝突してしまうと言いたいんですか? では、最後の質問です。それはどこを見てそう勘違いしたんですか? 衝突ですよね。「衝突」「被る」「重複する」「同じ名前」など それに類する言葉が使われているレスを指ししめなさい 指し示すっていうのは、あんたが読んで勘違いしてしまったレスなんで 自分で書いたレス読んで自分が勘違いしたなんて アホなことはいわないようにねw というか、>>142 が問題提起したものだろ 流れ見れば、誰ても分かると思うが これですね。>>142 が問題点を指摘して 質問者の>>143 が「そうなんだけど」と納得した流れです。 142 名前:Name_Not_Found[sage] 投稿日:2018/01/28(日) 11:50:24.50 ID:??? >>140 それだと静的に付けたclassまで消えちゃうじゃん 143 名前:Name_Not_Found[sage] 投稿日:2018/01/28(日) 17:27:37.90 ID:??? >>142 そうなんだけど・・・の管理が面倒で 変更の度にそこも付け加えなくてはならなくて >>530 関係ないと初めから分かっているなら、スコープの質問をしなければよかったと思うよ 質問するまでもなく、分かっているんだから >>536 オマエ馬鹿なのか? スコープの質問なんかしてないが? 500 名前:Name_Not_Found[sage] 投稿日:2018/02/16(金) 23:35:27.92 ID:??? 今の属性の話に変数のスコープは関係ないからねw 関係あるというのなら、どういうふうに関係があるのか 説明してもらおうか。変数のスコープの説明じゃないぞ 変数のスコープが今回のclass属性の代わりにdata-*属性を使うと 管理しやすくなるという話にどう関わってくるのかの説明だ こうやってスコープの説明じゃないぞっていっても スコープの質問をしたと勘違いするバカが居るんだよなぁw こうやって、俺が何を言ったかをいちいち書いておかないと 話を捻じ曲げてくるからな。 ずーっと捻じ曲げようとしている。 だから何度も引用するわ このスレを「スコープ」で検索すると最初に見つかるのはこれ 497 名前:Name_Not_Found[sage] 投稿日:2018/02/16(金) 23:28:06.66 ID:??? > data君が気が付いてない問題は、スコープでしょ > 属性は公開されているわけだし、その答えに行き着くのは理解できるけどね それに対する最初のレスで、すでにスコープが関係ないことを示している 関係有ることを誰も説明できない。だって関係ないもの。 498 自分:Name_Not_Found[sage] 投稿日:2018/02/16(金) 23:29:53.34 ID:??? > 誰かここでスコープが関係してくる理由説明できる?誰もできないと思う > > 多分こいつ、自作自演してる。書いた本人だわ > 自分にしか通じないことしか言ってない >>541 俺が飽きるまで何連投でもするよw せっかくの、お・も・ち・ゃw ここは質問スレではありません data君のストレス発散スレです いいえ、質問に答えているだけです。 次から次へとくるよくわからない質問に 答えているだけです。 >>535 そうなんだけどは問題点としてではなくaaaが一旦消えること aaaにCSS(見た目)は当ててないので閲覧者に不便はない 実際ブラウザで正常に動作する(=だからいいではないが)からいいんだよ 別に問題とは思ってないし問題にはなってない >>548 動くかどうかじゃなくてメンテナンスコストの問題 > そうなんだけど・・・の管理が面倒で > 変更の度にそこも付け加えなくてはならなくて >>553 attr()メソッド使えばいいで終わり $('.aaa') .removeClass().addClass('aaa').end() .attr('class', 'aaa'); >>548 って最初の質問の時点で読み取れるよな 勝手に問題、困ってると解釈して勝手に修正しようとしてたわけだ > >>548 って最初の質問の時点で読み取れるよな その次のレスで覆ったんだよ data君は自分が優秀だと思っている こんなところにいる底辺な奴らに自分が馬鹿にされていいわけがない そうだ、明らかに馬鹿なこいつを煽ってやろう 馬鹿なこいつは自爆するからそこを追求してやればいい そうして、皆が自分を優秀な人間だと認めるだろう >>569 次のレスってどれのこと? 質問者: 140 名前:Name_Not_Found[sage] 投稿日:2018/01/28(日) 10:57:06.54 ID:??? > .aaaに動的に付けたclass(bbb ccc ddd・・・)の削除や付け直しを一括でしたく > $('.aaa').removeClass('bbb ccc ddd・・・'); > を > $('.aaa').removeClass().addClass('aaa'); > とするのはあり? 質問者への問題点の指摘: 142 名前:Name_Not_Found[sage] 投稿日:2018/01/28(日) 11:50:24.50 ID:??? > >>140 > それだと静的に付けたclassまで消えちゃうじゃん 質問者の次のレス:143 名前:Name_Not_Found[sage] 投稿日:2018/01/28(日) 17:27:37.90 ID:??? > >>142 > そうなんだけど・・・の管理が面倒で > 変更の度にそこも付け加えなくてはならなくて > 最初つけるclassは1,2個と少ないので楽かなと 質問者の次のレスを解説すると 1. そうなんだけど => 問題点への指摘の同意 2. ・・・の管理が面倒で => 面倒な部分 3. 変更の度にそこも付け加えなくてはならなくて => ・・・の部分が変わる 4. 最初つけるclassは1,2個と少ないので楽かなと => 個数は不明だが、少ないのでまだましだということ これに対してdata-*属性を使った場合は、全ての問題が解決する classは論外だが何でもかんでもdata-に頼るべきではない <custom-postit data-form=circle のように基本的に使うものであって、 ある特定のJS内で完結する場合の要素へのデータの紐付けはWeakMapを使うべき >>570 まだ続けたいのか >>573 kwsk >>574 詳しく言うとJS内で完結するというのは主にCSSと連携しないってことだよ CSSからJS内の変数は読み書きできないから変数の値が○○の時に色を変えるとかはできない data-ならCSSと連携できるがそれが必要ないなら場合はJSでいい もともとは全部classに入れていたわけだけど、classをCSSと連携しない使い方をしてるなら data-ではなくJS側に全部持ってこれるということ 今回がどっちに当てはまるのかはしらないけどね ん?元はclass使っていたってことは、CSSと連携したいってことでは? しきりにWeakMapを連呼してるのは、オブジェクトが消えてもメモリリークが 起きないってことを言いたいのかもしれないけど、それはjQueryのdata()メソッドでもできること (質問者がdata()メソッドの存在を知らなかった可能性はあるけど) http://api.jquery.com/jQuery.data/ > The jQuery.data() method allows us to attach data of any type to DOM elements in a > way that is safe from circular references and therefore from memory leaks. > We can retrieve several distinct values for a single element one at a time, or as a set: もともとclassを使っていた以上CSSと連携させたいと思うのが普通で それをJS側に持ってこれるとは思わないな。 > ん?元はclass使っていたってことは、CSSと連携したいってことでは? ただの思い込み その理屈で言えば、WeakMapでできるというのも思い込みなわけで $(V.aaaV).attr(VclassV, VaaaV); >>579 最初はそれに気づかずに、CSSと連携できないって 指摘されて意見を変えたみたいねw 言っとくけど俺は573以降ここまでレスしてないから それに意見を変えたって、一体どういうこと? 意見は全部573に含まれてて完結している 書いたとおり、要素とデータを結びつけるときには必ずしも要素の属性を利用しなくとも WeakMapの方が勧められる『場合もある』と言っただけ そしてその理由は主にセマンティクス上のもので機能の優劣を述べたつもりもない 間隔としてはグローバル変数をむやみに使うなと同じような小言 それ以上でもそれ以下でもない 大人ならすぐ他人を煽ったり話を茶化して非建設的な流れに持っていくのは辞めろ >>576 文は長いが書いてあること全然詳しくないのだが 具体的にお願いできないかな >>583 最初から意見かえたのか? >> 438 > まだやっていたのか > 静的につけたclassが動的処理で消える問題を考慮するなら、data-*もclassも同じ問題を抱えてる > WeakMapを使えば良いだけ >>582 タグのclassを使う代わりに、JavaScriptの変数にしろっていう意見でOK? 要するにそれを使ってスタイルを当てる、とか カスタム要素で利用する属性である、とか 他のライブラリやモジュールから利用される、とか 第三者と共有する必要があるために、データをおおやけにする意味があるならいいが そうでなくJSで自分自身の閉じた空間内でメモ書きがしたいだけなら 要素の属性を使うのは下品じゃないかということだろう >>585 一番言いたいことは、そういう方法も使えるのに要素をデータを結びつけるためには 普通要素の属性を使うもんだと考え方が狭くなってないか?ということ それと一般的抽象的に考えて、オブジェクトとデータを結びつける効果的方法である WeakMapをもっとどんどん使っていこうよという意見 いや、class属性でやっていたものをWeakMap使えばいいっていうのが 必ずしも正しくないって話だろ。cssで使えないんだから なんでもかんでもWeakMapで解決するような言い方をするからいかんのだ >>587 > 一番言いたいことは、そういう方法も使えるのに要素をデータを結びつけるためには 話がずれてるよ 要素とデータを結びつけたいなんて誰も言ってない class属性のメンテナンスが面倒くさいって話をしてる >>588 自分はWMを使う方が良いケースもあると言っただけであって なんでもかんでもWMでなんて一言も言っていない >>589 それを言っちゃあそもそも論が出てきた最初の質問から5スレ後には既にずれてて 今や一般的な話になっている そのクラスだって単にjQから利用するためのラベル付なのかもしれないしね >>589 要はsourceの意図 classにしても class="*-aaa, bbb" とか部類の意図を把握できればそれで良いんだよ data-*="hoge" にしても結局は製作者の意図によるもの ま、個々の勝手だが >>584 > 最初から意見かえたのか? 何言ってるかわからん 誰か別人と勘違いしてないか? >>587 それは一理ある >>589 >class属性のメンテナンスが面倒くさい それってdata君の言い分だよな 少なくとも質問者はそう思ってない もっといい方法もあるよももっともだが質問者は断ってるしな >>590 > 自分はWMを使う方が良いケースもあると言っただけであって それをいうなら、俺だって今回のケースでは data-*属性をつかうと良いというだけで、 すべての場合でdata-*属性を使えなんて言っていない つまり、俺が今回の問題に対してレスしている所に横から割り込んできて、 今回の問題とは無関係な話を始めたお前がおかしい >>593 > それってdata君の言い分だよな 質問者が言ってるよ ↓ほらね 143 名前:Name_Not_Found[sage] 投稿日:2018/01/28(日) 17:27:37.90 ID:??? > >>142 > そうなんだけど・・・の管理が面倒で > 変更の度にそこも付け加えなくてはならなくて > 最初つけるclassは1,2個と少ないので楽かなと ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる