X



jQuery 質問スレッド vol.8
■ このスレッドは過去ログ倉庫に格納されています
0001Name_Not_Found
垢版 |
2017/10/23(月) 06:31:18.14ID:???
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/
0331Name_Not_Found
垢版 |
2018/02/12(月) 23:50:57.53ID:???
みなさんいろいろすみません>>140です
こういうの書くと成りすましに見られるから控えていたのですが

>>328
静的に付けたclassは消えても問題ないです
ただのセレクタ役だし、またつければいいだけで
0333Name_Not_Found
垢版 |
2018/02/12(月) 23:55:07.69ID:???
顧客が本当に必要だったものワロタwwwww
0334Name_Not_Found
垢版 |
2018/02/12(月) 23:55:28.16ID:???
>>331
> ただのセレクタ役だし、またつければいいだけで

ただのセレクタ役とは?
またつければいいというのは、どうやって?
0335Name_Not_Found
垢版 |
2018/02/13(火) 00:12:21.11ID:???
>>332
こういうのがいるから後から書きづらくなるんだよな
スレに悪影響以外何者でもない

>>334
出てるじゃん
0336Name_Not_Found
垢版 |
2018/02/13(火) 00:14:07.80ID:???
>>330
嫌と書いてないのを君が証明してどうするよw
0337Name_Not_Found
垢版 |
2018/02/13(火) 00:18:58.36ID:???
>>326
押し付けてるアンカよろ
どっちでもいいは幾つかあるが
0338Name_Not_Found
垢版 |
2018/02/13(火) 00:21:37.55ID:???
>>335
でてるじゃんじゃなくて、
どこにでてるのかって話だ

>>334
で、ただのセレクタ役とは?
またつければいいというのは、どうやって?
0339Name_Not_Found
垢版 |
2018/02/13(火) 00:22:33.11ID:???
どっちを使えとか押し付けてはいないな。
ただこの場合はdata-*属性を使ったほうが
シンプルに実装できるってだけの話だ
0340Name_Not_Found
垢版 |
2018/02/13(火) 00:25:02.39ID:???
確かにいままで出た条件の範囲では
data-*属性のほうが良いかもしれないけど

もしかしたら、明らかになってない条件の中に
data-*属性じゃだめな理由があるかもしれないだろ!
お願いだ。それを誰か書いてくれ
このままじゃ負ける
0342Name_Not_Found
垢版 |
2018/02/13(火) 00:49:54.45ID:???
なりすましするなら最後まで本人になりきって
質問に答えなきゃだめだろw
中途半端なことをするから余計怪しまれる
0343Name_Not_Found
垢版 |
2018/02/13(火) 09:14:17.29ID:???
>>140
> $('.aaa').removeClass().addClass('aaa');
> とするのはあり?
'.aaa'というセレクタで指定していることから静的に
追加したclassを変更する意図とケースは無いと見られる
後から追加されたclassNameは必ず後に追加されるので
>>144で答えは出ていると思うけどね
0344Name_Not_Found
垢版 |
2018/02/13(火) 09:15:27.85ID:???
>>343
つまり問題ないってことか
ありがとう
0345Name_Not_Found
垢版 |
2018/02/13(火) 09:46:47.03ID:???
>>344
条件次第だけどそうだと思うけどね?
jQueryでも古いバージョンにはセレクタのプロパティーがあったんだよね
最近のバージョンではなくなっているけど
$('.aaa').selector // '.aaa'
これを活用してインスタンスメソッドを作成しておくってこともできたんだけど
0346Name_Not_Found
垢版 |
2018/02/13(火) 09:47:52.64ID:???
何こいつ問題あるかないかにこだわってるんだろう
しかも質問者じゃない人のレスで満足して。
誰かに問題ありませんって言ってほしいだけかよw
承認欲求ってやつだな
0347Name_Not_Found
垢版 |
2018/02/13(火) 09:51:14.33ID:???
>>343
> '.aaa'というセレクタで指定していることから静的に
> 追加したclassを変更する意図とケースは無いと見られる

静的に追加したclassっていうのを誤解してるんじゃね?
JavaScriptで追加したものじゃなくて、HTMLに書かれた
classって意味だよ。デザインの都合で。

JavaScriptの役目としては、コードで付けたもの以外は
そのまま残しておく。だからremoveClassで全部消えちゃうのは
まずいわけ
0348Name_Not_Found
垢版 |
2018/02/13(火) 09:52:25.13ID:???
>>345
> これを活用してインスタンスメソッドを作成しておくってこともできたんだけど

こっちはまったく意味不明。何がしたいのかさっぱりわからない。
0349Name_Not_Found
垢版 |
2018/02/13(火) 10:11:01.08ID:???
>>347
>>144だと全部消えないだろ?
あくまで静的なclassNameは'aaa'での条件
質問の条件に対してことだよ
自己解釈しているのはアンタの方だろ?w
>>348
これは以前のjQueryにおいてのこと
0350Name_Not_Found
垢版 |
2018/02/13(火) 10:57:12.25ID:???
>>349
だから.aaa以外の静的に付けたものは消えるじゃん
それにそのコードだとaaaが2番目以降に来ると問題が有るし
0351Name_Not_Found
垢版 |
2018/02/13(火) 10:59:09.70ID:???
> 最初つけるclassは1,2個と少ないので楽かなと
と書いてある通り、1個とは限らないしね
0352Name_Not_Found
垢版 |
2018/02/13(火) 11:03:00.53ID:???
>>349
> これは以前のjQueryにおいてのこと

だから以前のjQueryだからって何なんだって話だ
jQuery 1.9.1で実行してみたが、
このように.aaaしか取れない
それで何がしたいのか

<span class="btn aaa">span</span>

alert($('.aaa').selector); // .aaa
0353Name_Not_Found
垢版 |
2018/02/13(火) 11:07:34.57ID:???
>>350
>>140にはそんなことは書いていないだろ?w
最後に.addClass('aaa')で完結している
0354Name_Not_Found
垢版 |
2018/02/13(火) 11:11:53.19ID:???
>>352
セレクタを参照してそれ以外のclassを削除するというインスタンスメソッド
0355Name_Not_Found
垢版 |
2018/02/13(火) 11:13:29.09ID:???
>>353

>>143に書いてあるだろ
勝手に完結させんな

143 名前:Name_Not_Found[sage] 投稿日:2018/01/28(日) 17:27:37.90 ID:???
>>142
そうなんだけど・・・の管理が面倒で
変更の度にそこも付け加えなくてはならなくて
最初つけるclassは1,2個と少ないので楽かなと
0356Name_Not_Found
垢版 |
2018/02/13(火) 11:15:01.17ID:???
>>354
> セレクタを参照してそれ以外のclassを削除するというインスタンスメソッド

だから、<span class="btn aaa">span</span>
aaaを参照して静的に書かれたbtnまで削除してしまう
使えないメソッドですねって言ってんだよw
0357Name_Not_Found
垢版 |
2018/02/13(火) 11:29:04.63ID:???
そもそもselectorを使うってセンス悪いわ

セレクタがIDだったらどうするんだ?
セレクタが属性セレクタだったらどうするだ?
カンマで区切られた複数のセレクタだったら、
親子セレクタ、隣接セレクタだったら?

セレクタがクラスの場合に限り、セレクタに
一致するものを除いて削除するメソッドとか
設計的に気持ち悪い。selectorなくして正解だったな
0358Name_Not_Found
垢版 |
2018/02/13(火) 11:54:15.83ID:???
>>357
お前らって本当に頭悪いよな余計なことを妄想しすぎ
>>140の回答はだな

$('.aaa').attr('class', 'aaa');

これで良いんだよ
バカ
0359Name_Not_Found
垢版 |
2018/02/13(火) 11:56:11.30ID:???
>>356
> $('.aaa').removeClass().addClass('aaa');
この結果から他にclassが存在しないだろ
バカ
0360Name_Not_Found
垢版 |
2018/02/13(火) 12:35:43.21ID:???
>>140で話終わってないだろ

143 名前:Name_Not_Found[sage] 投稿日:2018/01/28(日) 17:27:37.90 ID:???
>>142
そうなんだけど・・・の管理が面倒で
変更の度にそこも付け加えなくてはならなくて
最初つけるclassは1,2個と少ないので楽かなと
0361Name_Not_Found
垢版 |
2018/02/13(火) 13:09:00.19ID:???
> 最初つけるclassは1,2個と少ないので楽かなと
と書いてある通り、最初につけるclassは.aaaだけとは
限らないことが判明している。

つまり本当はこう言っているわけだ

$('.aaa').removeClass('bbb ccc ddd・・・');

$('.aaa').removeClass().addClass('aaa ・・・');


後者のほうが数が少なくてまだマシということだが、
両方ともやりたくないのは>>143からわかるだろう
(だからこそ>>140しか見ないようにしてるのだろうが)

この2つの・・・の管理をしなくて済むのが
data-*属性を使ったやり方なわけだよ
0362Name_Not_Found
垢版 |
2018/02/13(火) 14:18:20.70ID:???
>>358
それだと.aaaにデザインの都合で新たなクラスを
追加した時に、そのクラスまで消えてしまいますよね
それを避けるにはどうしたら良いのでしょうか?
なおデザイン側で追加されるクラスはわからないものとします
0363Name_Not_Found
垢版 |
2018/02/13(火) 16:13:02.54ID:???
>>362
あくまでも>>140の質問に対して率直に回答
結果としては < (elment) class="aaa" ...> にしたいということでしかない
それは質問に対しての回答ではなく、与太話でしかない
完結でしょ?
0364Name_Not_Found
垢版 |
2018/02/13(火) 16:20:22.09ID:???
>>361
$('.aaa').removeClass().addClass('aaa'); と $('.aaa').removeClass().addClass('aaa ・・・');
でhは全く結果が違うし、解釈も違うことが理解できないみたいだねw
0365Name_Not_Found
垢版 |
2018/02/13(火) 16:37:46.03ID:???
>>363
ここは質問スレです。私の質問に答えてください
0366Name_Not_Found
垢版 |
2018/02/13(火) 17:08:53.66ID:???
>>364
> 最初つけるclassは1,2個と少ないので楽かなと

「最初つけるclassは1,2個」の意味を考えましょう

$('.aaa').removeClass().addClass('aaa');
最初につけるclassが2個だとして、これのどこにそれが書いてありますか?
0367Name_Not_Found
垢版 |
2018/02/13(火) 18:36:38.06ID:???
>>366
$('.aaa').removeClass().addClass('aaa');
       ↑
これのどこに最初のclassの数云々考える必要があるの?
結果は class="aaa" しかあり得ないだろw
>>361がclassが複数あるとか質問に沿わない自己解釈しているから言ってるだけ
なんで必死に絡んでくるのか意味不明
0368Name_Not_Found
垢版 |
2018/02/13(火) 18:40:19.22ID:???
$().addClass('aaa'); とかしたら
jQueryが「classNameはaaa以外にありませんか?」とか一々聞いてくるのかよw
0369Name_Not_Found
垢版 |
2018/02/13(火) 18:50:09.93ID:???
「最初つけるclassは1,2個」の意味を考えましょう
0370Name_Not_Found
垢版 |
2018/02/13(火) 19:25:41.84ID:???
質問を見れば最後は"aaa"のみで完結してるじゃん
これ以上でも以下でもないと思うが外野の勝手な連想で
ただ意味をこじ付けているだけにしか見えない
学校で先生に問題はよく読みなさいと教わらなかったのかな?
0371Name_Not_Found
垢版 |
2018/02/13(火) 19:30:38.52ID:???
>>140
> .aaaに動的に付けたclass(bbb ccc ddd・・・)の削除や付け直しを一括でしたく
> $('.aaa').removeClass('bbb ccc ddd・・・');
> を
> $('.aaa').removeClass().addClass('aaa');
> とするのはあり?
0372Name_Not_Found
垢版 |
2018/02/13(火) 20:18:34.50ID:???
>>361
両方ともやりたくないとは言ってないよ

やりたいことは
$('.aaa').removeClass().addClass('aaa'); または
$('.aaa').removeClass().addClass('aaa bbb');

つまりccc ddd・・・を消したいと
0373Name_Not_Found
垢版 |
2018/02/13(火) 20:31:16.92ID:???
>>332
そういうの荒れるからやめてくれ、マジで
ここ参考になるのに
0374Name_Not_Found
垢版 |
2018/02/13(火) 21:13:39.59ID:Y812Cm0N
もーめんどくせーから
$(function () {
$(".aaa").each(function () {
$(this).data("originalClass", $(this).attr("class"));
});
}
して、必要に応じて
$(".aaa").each(function () {
$(this).attr("class", $(this).data("originalClass"));
});
するとかw
0375Name_Not_Found
垢版 |
2018/02/13(火) 21:45:46.50ID:???
>>372
$('.aaa').attr('class', 'aaa'); または
$('.aaa').attr('class', 'aaa bbb');
いわゆる初期化だろw
0376Name_Not_Found
垢版 |
2018/02/13(火) 21:49:29.59ID:???
>>372
> やりたいことは
> $('.aaa').removeClass().addClass('aaa'); または
> $('.aaa').removeClass().addClass('aaa bbb');
>
> つまりccc ddd・・・を消したいと

$('.aaa').text('').text('aaa bbb');
こんなことやりたいの?
0377Name_Not_Found
垢版 |
2018/02/13(火) 23:19:16.08ID:???
>>370
ほんとそう思う
自分目線でこうあるべきと勝手に進めてるのが一部
0378Name_Not_Found
垢版 |
2018/02/13(火) 23:37:29.22ID:???
>370
> 質問を見れば最後は"aaa"のみで完結してるじゃん
あんたの言う最後は>>140のことかな?

>>143でこう言ってるのは無視してるのかな?

> そうなんだけど・・・の管理が面倒で
> 変更の度にそこも付け加えなくてはならなくて
> 最初つけるclassは1,2個と少ないので楽かなと
0383Name_Not_Found
垢版 |
2018/02/14(水) 08:27:10.60ID:???
$('.aaa').attr('class', 'aaa');
 or
$('.aaa').attr('class', 'aaa bbb');

これが理にかなってると思う
0384Name_Not_Found
垢版 |
2018/02/14(水) 09:15:17.52ID:???
>>383
ただそれだとデザインの都合で
別のクラスが追加された時に
メンテナンスが必要になるんですよね
どうにかなりませんか?
0385Name_Not_Found
垢版 |
2018/02/14(水) 12:22:19.19ID:???
>>384
> $('.aaa').removeClass().addClass('aaa'); または
> $('.aaa').removeClass().addClass('aaa bbb');

これをやるなら>>383の方がスマートで理論的と俺は見た
理由は最終的には'aaa'(単一)か'aaa bbb'(複数)のクラス名に意図的に置き換えるから
基本に数値にしても結果がわかっているなら num = 10 で良い、無理に nam = x + y などは不要
これはどんな言語でも同じこと
0386Name_Not_Found
垢版 |
2018/02/14(水) 12:28:37.87ID:???
>>385
デザインの都合でっていう話は完全無視?

<span class="aaa"> とあって、
デザイナーが この部分フォント大きくしたいなとか思って
<span class="aaa hoge"> みたいに変更すると
JavaScriptのコードの変更まで必要になってしまうんだよ

他にもclassってことは複数のaaaがあることが想定されるが
一つは <span class="aaa hoge"> 、もう一つは <span class="aaa hage">
だったりしたら、困るだろ

HTMLはプログラマとデザイナで共有している所だから
お互いに相手に影響を与えないようにしないといけない
0387Name_Not_Found
垢版 |
2018/02/14(水) 12:49:45.12ID:???
>>386
お互いに相手に影響を与えないようにしないといけないんだったら
気軽にお互いがsourceを都合で勝手に変えるもんじゃないだろw
共有しているのなら連携して修正しないとね
0388Name_Not_Found
垢版 |
2018/02/14(水) 13:05:22.51ID:???
>>387
連携っていうのは、受け渡しの部分を最小限にして
お互い独立して作業ができるようにすることだぞ

何もかもがお互いに影響していたら
連携というより相手の作業を邪魔することにしかならない
0389Name_Not_Found
垢版 |
2018/02/14(水) 13:21:26.96ID:???
影響を受けないように気をつけて作るのが仕事なんじゃないでしょうか・・
0390Name_Not_Found
垢版 |
2018/02/14(水) 13:33:01.69ID:???
そうだね。だからデザイナーがclassに付け足しても
コードは影響がないように作るって話なんだよ
やっとそこ(自分の担当外の仕事)まで考えられる人がでてきたか
0391Name_Not_Found
垢版 |
2018/02/14(水) 14:25:48.56ID:???
>>386
インスタンスメソッドぐらい作成しろよ
静的に追加したclassNameには 'org-' など任意の文字列を埋め込んでおいたら問題ないだろ?

$('$.fn.extend({
restoreClass: function () {
let arr = [];
$(this).attr('class').split(' ').map(function (a, b, c) {
a.indexOf('org-') !== -1 ? arr.push(a) : void 0;
});
return $(this).attr('class', arr.join(' '));
}
});

$('.org-aaa').restoreClass();
0392Name_Not_Found
垢版 |
2018/02/14(水) 14:27:19.30ID:???
誤:$('$.fn.extend({
正:$.fn.extend({
0393Name_Not_Found
垢版 |
2018/02/14(水) 14:31:24.34ID:???
>>391
> 静的に追加したclassNameには 'org-' など任意の文字列を埋め込んでおいたら問題ないだろ?

> それは俺が>>210で提示したやり方ですね?
そんなコードを書くのが無駄だと言ったコードを
わざわざ書くとはw

> としなければいけなくなるということ
> そして、色やサイズのパターンが増えたらどうすんの?ということ
>
> ま、無理やりやろうとするなら、classの値に特殊な名前つけルールを作って
> そのルールを解釈して操作する関数を作るなんて "無駄なこと" をやればできるがねw
> > whiteとではなくcolor-whiteみたいにプリフィックス付けて全部列挙して color- だと・・・無駄だなw
0394Name_Not_Found
垢版 |
2018/02/14(水) 14:35:24.91ID:???
>>393
デザインの都合でで使うクラス名の管理はデザイナーのお仕事ですw
0395Name_Not_Found
垢版 |
2018/02/14(水) 14:37:33.17ID:???
>>391
それから、それ気持ち悪いコードですね。
インスタンスメソッドというから何かと思えば
jQueryプラグインですか? ならjQueryプラグインの書き方で書きましょうよw

なってない。手本を見せてあげましょうか?

それからほれjQueryプラグインの作り方
https://learn.jquery.com/plugins/basic-plugin-creation/
0396Name_Not_Found
垢版 |
2018/02/14(水) 14:38:25.72ID:???
>>394
はい?ですのでデザイナーに任せてデザイナーが
何をしようとコードには影響を受けないようにすべきですね。
0397Name_Not_Found
垢版 |
2018/02/14(水) 14:41:22.14ID:???
じゃ、自由に任意の文字列を投げるようにしたらいいんじゃないの?w

$.fn.extend({
restoreClass: function (str) {
let arr = [];
$(this).attr('class').split(' ').map(function (a, b, c) {
a.indexOf(str) !== -1 ? arr.push(a) : void 0;
});
return $(this).attr('class', arr.join(' '));
}
});

$('.org-aaa').restoreClass('org-');
0398Name_Not_Found
垢版 |
2018/02/14(水) 14:43:23.67ID:???
>>391
まず先にバグを指摘しておきますね
org-bbb が org-aaa に変わってしまいます。

<span class="org-aaa">span</span>
<span class="org-bbb">span</span>



$('.org-aaa, .org-bbb').restoreClass();



<span class="org-aaa">span</span>
<span class="org-aaa">span</span>
0399Name_Not_Found
垢版 |
2018/02/14(水) 14:45:29.61ID:???
>>397
俺ならこうするなぁ。まdata-*属性使いたくないんでしょw
もしくは最初の初期化時にdata()メソッドで初期クラスを保存するとかね

<span class="aaa" data-original-class="aaa">span</span>
0400Name_Not_Found
垢版 |
2018/02/14(水) 14:51:59.06ID:???
>>399
それそれ、人の意図だからそれで良いと思うよ
data属性はあくまで適切な属性や要素がない場合を想定したものなので
classで賄えるんだから俺はclassを使用することを推薦するよ
0401Name_Not_Found
垢版 |
2018/02/14(水) 14:55:02.21ID:???
>>398
それはね、Bugといよりそのケースには未対応ってことなんだよ
サクッとインスタンスメソッドを作っただけなのでそれは筋違い
0402Name_Not_Found
垢版 |
2018/02/14(水) 14:57:40.74ID:???
あ、はい、バグだと指摘されたら「仕様です」ですねw
0403Name_Not_Found
垢版 |
2018/02/14(水) 14:59:07.57ID:???
はい、まともなコードに直してあげましたよw
古いIEでも動くように考慮してます。

$.fn.restoreClass = function () {
 return this.each(function() {
  var classes = this.className.split(' ');
  var className = $.grep(classes, function() {
   return this.indexOf('org-') === 0;
  }).join(' ');
  this.className = className;
 });
};

$('.org-aaa, .org-bbb').restoreClass();
0404Name_Not_Found
垢版 |
2018/02/14(水) 15:03:53.87ID:???
ごめん、訂正w

$.fn.restoreClass = function () {
 return this.each(function() {
  var classes = this.className.split(' ');
  var className = $.grep(classes, function(c) {
   return c.indexOf('org-') === 0;
  }).join(' ');
  this.className = className;
 });
};

$('.org-aaa, .org-bbb').restoreClass();
0405Name_Not_Found
垢版 |
2018/02/14(水) 15:07:09.57ID:???
そして、最新のブラウザだけで動けば良いコード

$.fn.restoreClass = function () {
 return this.each(function() {
  let classes = $.grep(this.classList, c => c.startsWith('org-'));
  this.className = classes.join(' ');
 });
};

$('.org-aaa, .org-bbb').restoreClass();
0406Name_Not_Found
垢版 |
2018/02/14(水) 15:12:19.54ID:???
別解

$.fn.restoreClass = function () {
 return this.attr('class', function() {
  let classes = $.grep(this.classList, c => c.startsWith('org-'));
  return classes.join(' ');
 });
};

$('.org-aaa, .org-bbb').restoreClass();
0407Name_Not_Found
垢版 |
2018/02/14(水) 15:16:01.43ID:???
>>406のように特定の条件(わかるかな?w)を満たせば
extendでもできなくはないですがね。

$.fn.extend({
 restoreClass: function () {
  return this.attr('class', function() {
   let classes = $.grep(this.classList, c => c.startsWith('org-'));
   return classes.join(' ');
  });
 }
});

$('.org-aaa, .org-bbb').restoreClass();
0408Name_Not_Found
垢版 |
2018/02/14(水) 15:17:43.10ID:???
>>401
> それはね、Bugといよりそのケースには未対応ってことなんだよ

jQueryのプラグインの形式として使えるくせに、
jQueryで使えるセレクタを使ったら正しく動かないのはバグだよ

それなら関数にしたほうがまだマシ
0409Name_Not_Found
垢版 |
2018/02/14(水) 15:21:59.42ID:???
data-*属性使えばシンプルに解決できる問題なのに、変な仕組みを作って
コードを書いたのは良いが、バグありで
map使ってるくせに戻り値を利用せず、条件に応じてpushかするような
コードを書くようじゃぁ、まだまだ初心者ですね。考え方もコードも ┐(´ー`)┌ヤレヤレ
0410Name_Not_Found
垢版 |
2018/02/14(水) 15:36:24.95ID:???
建設的なレスをしないのに限ってああだこうだ言うんだよね
0411Name_Not_Found
垢版 |
2018/02/14(水) 15:39:59.97ID:???
>>409
class名できることをdata-*属性の方がシンプルだとか頭悪そうだよな
ワロタ
0412Name_Not_Found
垢版 |
2018/02/14(水) 15:41:46.32ID:???
jQuery 仮想質問に答えて罵るスレッド
この方がこのスレに合ってると思う
0413Name_Not_Found
垢版 |
2018/02/14(水) 15:47:11.27ID:???
>>411
> class名できることをdata-*属性の方がシンプルだとか頭悪そうだよな

まあ実際見てみれば明らかだよ

>>274にも書いたけど

<span class="button" data-color="white" data-size="M"> を
<span class="button" data-color="red" data-size="L"> に書き換えるならば
$(…).attr({"data-color": "red", "data-size": "L"}) これだけで終わり


> .aaaに動的に付けたclass(bbb ccc ddd・・・)の削除や付け直しを一括でしたく
という流れで、 .removeClass()を使う時点で、おかしいと感じないとダメ
・・・はどうなっとるんじゃ?と

> そうなんだけど・・・の管理が面倒で
> 変更の度にそこも付け加えなくてはならなくて
> 最初つけるclassは1,2個と少ないので楽かなと

聞いてみたら↑案の定こういうレスが返ってきたわけで、
使い方間違ってるなーという話さ
0414Name_Not_Found
垢版 |
2018/02/14(水) 17:13:31.22ID:???
>>408
ツッコミどころをわざと作ってやってんだよ
その方が楽しいだろ?
案の定、必死に噛み付いて来てるしw
0415Name_Not_Found
垢版 |
2018/02/14(水) 17:20:41.61ID:???
ツッコミどころをわざと作ってやってんだよ
0416Name_Not_Found
垢版 |
2018/02/14(水) 17:22:30.95ID:???
>>413
> $(…).attr({"data-color": "red", "data-size": "L"}) これだけで終わり
コーヒー噴いたじゃないかよwww
それってね結局はこれと一緒
$(…).css({"color": "red", "font-size": "large"})
単にプロパティーを変更しているだけなんだけどw
脳内で満足してるだけ
0417Name_Not_Found
垢版 |
2018/02/14(水) 17:28:32.81ID:???
>>416
いや、服の色が赤で、サイズがLって意味だけど?
MとかLとかSとかLLで気づかないかね?
0418Name_Not_Found
垢版 |
2018/02/14(水) 17:33:57.29ID:???
ツッコミどころをわざと作ってやってんだよ?
0419Name_Not_Found
垢版 |
2018/02/14(水) 22:34:50.81ID:???
>>383
動的にということだから他の部分でも〜Classメソッド使ってると思われ
その流れでremove/addClassの方が自然なような
0421Name_Not_Found
垢版 |
2018/02/15(木) 08:44:13.60ID:???
>>420
だからclassを使うのが間違ってるわけだから
そもそもtoggleClassもいらんのだよ。
単にdata-*属性に値を入れるだけ
0422Name_Not_Found
垢版 |
2018/02/15(木) 08:48:25.05ID:???
data-zaiko=true
data-zaiko=false
とかね
0423Name_Not_Found
垢版 |
2018/02/15(木) 09:11:14.96ID:???
>>421
間違っていることはないよ
どちらを使っても良いんだよ
脳内の問題
0424Name_Not_Found
垢版 |
2018/02/15(木) 09:21:21.79ID:???
classっていうのは種類って意味だよ。
一つの要素がそんなに複数の種類になることなんてない。
通常は種類は一種類。OOCSSなんかは複数のスタイルで
継承関係を表しているだけで種類は一種類

activeとかdisableなんてのも本来はclassの用途としては
間違っている。実際input要素とかは別の属性だしね

悪影響がないならclassを使ってもいいけど
真偽値のみに留めておくのが良い

やりにくくなったらdata-*属性を使ったほうが良い
0425Name_Not_Found
垢版 |
2018/02/15(木) 09:53:16.57ID:???
継承関係を表しているだけで種類は一種類?
class="dog male"
class="cat female"
種と性別はどっちがどっちを継承してるの?
本来はclassの用途としては間違っているってdata-の仕様が出来るまではみんな間違ってたってこと?
0426Name_Not_Found
垢版 |
2018/02/15(木) 10:01:05.35ID:???
> 種と性別はどっちがどっちを継承してるの?

自分で書いてるじゃん。

class=種類は「種」だよ。
性別は属性
0427Name_Not_Found
垢版 |
2018/02/15(木) 10:15:39.40ID:???
人間ならmaleとfemaleと見ただけで、それが性別であることはわかるだろうけど、
コンピュータから見れば、わからないからね。

各順番を片方逆にしていたら、

class="dog male"
class="female cat"

片方は dog で片方は female という種なんだと
認識してもおかしくない

これがプログラミング言語であれば、
var class = "male" なんてコードは書かないだろう
0428Name_Not_Found
垢版 |
2018/02/15(木) 11:36:40.10ID:???
長いだけで中身空っぽだぞ
0429Name_Not_Found
垢版 |
2018/02/15(木) 11:49:16.64ID:???
性別は属性って言ったって、data-できる前<div sex="female">と書いていたのか?
class使ってたんじゃないの?本来野郎はそこ説明しろよ。
0430Name_Not_Found
垢版 |
2018/02/15(木) 12:08:30.91ID:???
>>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使っていなかっただろ!とか
一つしか指定してなかっただろ!とか言うことに何か意味があるのか?
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況