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/ >>421
間違っていることはないよ
どちらを使っても良いんだよ
脳内の問題 classっていうのは種類って意味だよ。
一つの要素がそんなに複数の種類になることなんてない。
通常は種類は一種類。OOCSSなんかは複数のスタイルで
継承関係を表しているだけで種類は一種類
activeとかdisableなんてのも本来はclassの用途としては
間違っている。実際input要素とかは別の属性だしね
悪影響がないならclassを使ってもいいけど
真偽値のみに留めておくのが良い
やりにくくなったらdata-*属性を使ったほうが良い 継承関係を表しているだけで種類は一種類?
class="dog male"
class="cat female"
種と性別はどっちがどっちを継承してるの?
本来はclassの用途としては間違っているってdata-の仕様が出来るまではみんな間違ってたってこと? > 種と性別はどっちがどっちを継承してるの?
自分で書いてるじゃん。
class=種類は「種」だよ。
性別は属性 人間ならmaleとfemaleと見ただけで、それが性別であることはわかるだろうけど、
コンピュータから見れば、わからないからね。
各順番を片方逆にしていたら、
class="dog male"
class="female cat"
片方は dog で片方は female という種なんだと
認識してもおかしくない
これがプログラミング言語であれば、
var class = "male" なんてコードは書かないだろう 性別は属性って言ったって、data-できる前<div sex="female">と書いていたのか?
class使ってたんじゃないの?本来野郎はそこ説明しろよ。 >>429
昔classしか選択肢がない状況でclass使っていたからってなんだっていうのだろうか?
昔の話をするならば、IE6は複数のクラスを指定しても最後の一つしか認識しないバグが有るし
http://css-eblog.com/ie-css-problems/box.html
IE4、NN4の時代にはクラスには一つしか指定できなかった
http://www.tohoho-web.com/lng/200002/00020242.htm
HTML3.2だとそもそもclassが存在しなかった
https://qiita.com/anchoor/items/02e4af0f630f5f9b2470
昔の仕様を持ち出してきて、昔はclass使っていなかっただろ!とか
一つしか指定してなかっただろ!とか言うことに何か意味があるのか? >>424
class属性は種類というより部類。例えば、aaa と bbb と ccc という種類がある
'aaa ccc' or 'bbb ccc' は種類によって分けた部類となる
HTMLは論理要素は意味を持つが物理要素は外見だけなので何の意味もなく
個々の意図でしかない classify分類する
classification分類
class = ??? ここ面白いな、。次のスレタイはこれで。
質問者の質問を元に自分で勝手に変更解釈して自分で答えを書くスレ。 まだやっていたのか
静的につけたclassが動的処理で消える問題を考慮するなら、data-*もclassも同じ問題を抱えてる
WeakMapを使えば良いだけ >>437
ちがうよ
質問をお題に知識をひけらかしてマウントとるスレ
だろ >>438
まだやってるのはお前だけdata-*属性を使うことに対して異論は出てない
更に言うならばclassに使うということはCSSで何かしらのデザインを与えたい
ということだろうから、data-*属性ならば属性セレクタで対応は可能だが
WeakMapを使った場合は実現できない <ul class="aaa"l>
<li>リスト0</li>
<li>リスト1</li>
</ul>
<ul class="bbb"l>
<li class="selected">リスト2</li>
<li>リスト3</li>
</ul>
var obj = $('aaa li, bbb li');
console.log(obj); [ 0: li, 1: li, 2: li.selected, 3: li ]
console.log(obj.filter('.selected').index()); // 0
console.log(obj.filter('.selected').prev()); // length: 0
ul.aaa li と ul.bbb li を統合したobjから .selected の一つ前の要素を
取得したいのですがやり方間違っています? >>444ですがhtmlにゴミが入っていましたのでこれになります
<ul class="aaa">
<li>リスト0</li>
<li>リスト1</li>
</ul>
<ul class="bbb">
<li class="selected">リスト2</li>
<li>リスト3</li>
</ul> >>421
それは意味が違うし、するにしても面倒
toggleClassは(引数なしなら)今の値の逆、つまり今の値が何かは関係ない
422だとこうなる
今の値取得->逆->設定 > 今の値の逆、つまり今の値が何かは関係ない
矛盾しとるんだが? それにtoggleClass(引数なし)は
jQuery 3.0でdeprecated
https://api.jquery.com/toggleClass/#toggleClass2
もう使うなよ? >>439
うん、それもあるな
しかもその知識は質問者の都合無視 >>444
全然しとらんやんけ
現在値を気にする必要ない redの逆って何?青になんの?
じゃorangeだったら??? toggleClassは(引数なしなら)今の値(red)の逆、つまり今の値が何かは関係ない > 今の値(red)の逆、つまり今の値が何かは関係ない
何このなぞなぞ
狐につつまれたような気分だ わかってるのにくだらない突っ込み多すぎ
redの追加削除 今の値とは有無のこと、あるなしが逆ということ、値が何かは関係ない
誰でもすぐ分かるのにもうマウントに必死すぎて笑えるわ それが
<span class="aaa bbb ccc ddd ・・・">
を
<span class="aaa">
にする話と何が関係有るのでしょうか? 今の値が何かは関係ないということは
ありでもなしでいいわけですよね?
<span class="">← なしです
なしの時にtoggleClass(引数なしなら)を実行したら
なんになるのでしょうか? >>449
赤の逆色は青じゃない、緑
マンセル色相環 >>453
そんなにマウント取られたって言うのは可愛そうじゃね?
本人はマウント取られてないつもりかもしれんじゃん
わざわざあんたいまマウント取られたんだよって教えてあげるとかw スマンここは間違えた
酔っ払ってたわ
引数ありなら、ね 酒のせいにして何もかも間違っていたと言っていたほうが良いよ?
何一つあってないんだから >>450
> 今の値(red)の逆、つまり今の値が何かは関係ない
>>453
> 今の値とは有無のこと、あるなしが逆ということ、値が何かは関係ない
????
今の値は(red)なの?
有無のこと、あるなしのことなの???
redと有無って同じなの??? 次のスレタイ=マウント取りたくてウズウズしているスレ マウント取られて悔しいのはわかるが、
マウントを避難するんじゃなくて
↓これをtoggleClassでどうしたいのかをさっさと書けばいい
<span class="aaa bbb ccc ddd ・・・">
を
<span class="aaa">
既出の話題ならはいらんぞ
・・・の管理が面倒くさいって話だからな >>461
ただの揚げ足取りでマウントすらになってない >>440
> 更に言うならばclassに使うということはCSSで何かしらのデザインを与えたい
ということだろうから
勝手に妄想で「静的につけたclassが動的処理で消える問題」と無関係な条件を付けて、あなたの思う方向に結論を向けられても困る
属性で対応したら「静的につけたclassが動的処理で消える」ことも分からないのか > 属性で対応したら「静的につけたclassが動的処理で消える」ことも分からないのか
わからんね。具体的に説明してみな なお、静的に付けたclassが消えてしまう問題は
質問者自ら、そうなんだけど・・・って言っている
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個と少ないので楽かなと >>465
toggleClass('bbb');
toggleClass('ccc');
toggleClass('bbb ddd');
じゃね >>471
そうすると、bbbとかcccとかdddとかが増えるたびに
メンテするのが面倒くさいっていうのが本題です ちなみに
静的に付けたclassが消えてしまうことは問題でもなんでもない
承知でやってること 承知でやっているがもっといい方法ないかなーってこと。 >>472
面倒は初期だけのことでeeeが増えてその処理(toggleClass('eee')など)が増えることは当たり前で面倒でもなんでもない >>477
じゃあ、data-*属性のどこが問題かの話を何故しないのですか?
もっと優れたやり方(data-*属性)を提示したんだから
もうclassに拘る必要ないでしょ良いでしょw
はいはい、classわすれたー
data-*属性でいきましょうー >>476
じゃあお前はそこで議論から外れてください。 >>469
属性なんだから、いくらでもremoveClassやsetAttributeで干渉できるだろ >>478
ありかなしか、次のレスで解決してるのでけっこうです
でも参考になりましたわ よい方法だろうがなんだろうがゴリ押しdataくんが大嫌いなのでdataは絶対使いません! >>481
静的につけたclassが動的処理で消える 482の追記
data-属性はcssからめて別では使ってます
どうもでした >>484
じゃあclassを動的処理で消している部分をなくせば問題ないってことですよね。
=class使うなってことです。 >>486
属性を使うのを止めれば良い
お前が>>440で見当違いの事を言ってたから反論しただけなんだが、自分の間違いも認められないとは >>487
面倒だから解決方法を探してる
面倒じゃない人はお前ん中では面倒じゃないんだから
お前ん中の世界にいればいいって話 >>488
classも属性ですが?
属性を使うな、何を言ってるのでしょうか。
classが動的処理で消えるというなら、
data-*属性を使ってclassに一切触らなければ
classが消えることはありません。
反論どうぞ >>490
>>438を100回読み直せ
読解力が無さ過ぎてあきれる > data-*属性を使ってclassに一切触らなければ
data-*属性も動的処理で消せるだろ
アホなのか、こいつは >>491
読み返した所で>>438が馬鹿だとしか思えませんが?
なぜかって?classが動的処理で消える問題とか言ってるから馬鹿なんですよ。
classがremoveClass()でいっぺんに消した時に全部消えてしまうって話なんだから
data-*を使えばremoveClass()を使ったとしても消えることはない
そもそもclassを使わないのだからremoveClass()自体不要
>>438が馬鹿な理由わかりますか?この話をしてるのに
JavaScriptから消す方法があるの話を勘違いしてるんですよ
バカ以外の何物でもないでしょう
何か反論は? > data-*属性も動的処理で消せるだろ
墓穴ほってるよなーw
動的処理で消せること自体は問題にしてないのにwww >>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が動的処理で消える問題 質問を自分仕様に変えて自慢げに書くスレ
質問者が言ってもいないことを言ったと言い張るスレ 質問者が問題としてないことを問題として扱うスレ
ま、これはいいか
「こういう仕様ならこういう方法もあるよ」くらいなら ■ このスレッドは過去ログ倉庫に格納されています