+ JavaScript & jQuery 質問用スレッド vol.8 +
■ このスレッドは過去ログ倉庫に格納されています
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-4のテンプレを読んだ上で質問してください。次スレは>>950が>>2のテンプレ案(本スレで改善案があれば考慮)を元に立ててください
■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
(ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
※必ず「問題の事象が再現されること」を確認してください。
必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
+ JavaScript & jQuery 質問用スレッド vol.7 + [無断転載禁止]©2ch.net
http://mevius.2ch.net/test/read.cgi/hp/1467906819/ classListはリスト、classNameはスペース区切りの文字列で格納される違い
自分の好きな方を使えばいい
クラスが無い状態からclassList.addでも全く問題ない >>359
古い時代、IE2.0やネスケ3.0の時代にはクラスには一つの
値しかいれることができなかった。<a class="foo"> みたいに。
これがスペースを区切って複数入れられるようになった
<a class="foo bar baz"> みたいに。
クラスの値が1個だけの時代であれば操作は簡単だった
classNameに値を入れることぐらいしかできないのだから
だけどスペースで区切って複数入れられるようになってからは、foo bar bazのうち
barだけを消したいとか、さらに一個付け加えたいとか、複雑な操作が必要になった。
それに早くから対応したのがjQuery。addClassやremoveClassといった、
複数の値を操作するメソッドが作られた。それが2006年
それから4年後の2010年にChromeとFirefoxでclassListが部分的に実装され
2013年にChromeとFirefoxとSafariでjQuery相当の機能が実装された
IEは2012年に部分的な実装で終わり、Edgeで完全版が実装された。 >>360
>>361
ありがとうございます。
複数のクラスへの対応ということなんですね。勉強になりました。 jQuery を 2 から 3 にバージョンアップしたら
$('...').load() ってとこでエラーが出るようになったんだけど
引数なしの load って何をしてるんですか?
要素が load されたときに引数の関数を実行するみたいなメソッドみたいなんですが
引数なしで何か意味があるんでしょうか
コーディングした人のミスなのかな… たぶんloadイベントを発生させる
http://api.jquery.com/load/
のNoteに3.0から変わったことが書いてある ありがとうございます
ということは消すのはまずいんですよね
jQuery3 にしたときに影響を与えないようにおきかえるべき適切な関数ってありますか? ごめんなさい
むこうでまともな回答がもらえなかったので ヘルプなんてあったんですね
知らなかった…
規約じゃなければこんなのあってもわからない気がするんだけど
とりあえずこちらでの質問は〆ます
マルチすいませんでした なんでマルチポストしたら駄目なんだろうね
投稿された質問にteratailの著作権が発生するとでもいうんだろうか >>370
> とりあえずこちらでの質問は〆ます
なぜ、ヘルプに書いてある通りにしないのだろうか
「やむを得ず複数のサイトに質問を投稿された場合は、質問内容にマルチポストをする理由を書き、他のサイトの投稿へのリンクを貼ってください。また、解決した際には必ずteratail及びすべての投稿に解決した旨と、どのように解決したかを記載してください。」 5chの印象なんて便所の落書きって思ってる人もいるしリンクなんてはりたくないだろ そもそもヘルプって絶対目を通すべきものでもないし義務でも何でもない
2ch内のマルチもマナーの問題で気にする人から単に回答がもらえないだけ teratailはアカウント必須だからこういう変な粘着があるとめんどくせえ
stackoverflowのほうがいいぞ >>374
自業自得だろ
回答者だって他所で回答されている内容を重複回答したくないだろうに 同じ目線に立つとこうなる。
質問者「めんどくせーなあ。マナーなんて守らなくてもいいだろ。」
回答者「めんどくせーなあ。マナー守らない奴は叩けばいいだろ。」 >>377
そこが理解できない
回答なんて労力かけてやるもんじゃないし無駄になったってどうでもよくね
マルチポストが悪なんじゃなく回答を共有しないのが悪なんであって
質問スレや質問サイトみるやつなんて
どや回答したいより他者の回答みて知識つけたいってやつのほうが多いだろ
回答がつかないまま知識獲得の機会が失われるよりいいと個人的には思うよ
まあマルチするやつは質問なげっぱなしで回答共有しないやつが多いから
先手を打って答えないようにしようってのがマルチ禁止の流れなんだろうけど マルチって同時刻に同じ質問のコピペをはりまくるような露骨なののことじゃね
流れが落ち着いて満足な答えもらえなかったら別所できくって普通にだれでもやるだろ
むしろ何レスも前の質問に唐突に別所できいてくるので質問〆ますとか毎回かかれる方がうざくね? >>379
「人間、自己中の塊だから、質問者も回答者もお互い様だろ」といいたげだな
5chに毒されすぎ アカウントもってないから内容みれないけど>>365がマルチポストの内容なの?
この程度の内容になんでマルチポストしなきゃいけない回答しかつかないんだ >>382
アカウント持ってなくても見られるだろ?
>>368 >>382
ひとりは「周りのコードみないとわからん」
もうひとりは「triggerにおきかえろ」
もうひとり(おそらくここでマルチさわいでるやつ)は「jQueryのソースよめ」 >>383
みれたわ
アカウント必須っていってたからみれないのかと思った あっちの回答でマルチポスト指摘してんのかよ
性格悪そう >>384
ソース読めはどうなの?
相手が即戦力で入社してきた10年戦士ならそれでいいが
ソース読めドキュメント読めですむなら質問サイトなんていらないだろ 質問者の落ち度はteratail側のヘルプを読んでなかったってだけで、
指摘された後もちゃんと謝れてるし態度的には問題ないようにみえる
謝罪した後にわざわざteratailの回答でマルチ指摘しにいってるあたり性格が悪そうだから同情したくなる
何事も印象の問題 そもそもマルチ確定したわけでもないんだよなー
まだ謝ってるやつがただのなりすましで偶然同じ投稿されてるだけの可能性もある >>389
ドキュメントやソースコードの存在を知らない奴もいるだろ
やるだけやってから、質問するのが筋じゃね?
新入社員はドキュメントもソースも読まず、先輩に全部教えて貰うの?
「やってみて、分からない部分を具体化する」のは質問者の仕事じゃねーの? 先任者が仕様外のコードをかいていて
しかもそのメソッドがピンポイントでバージョンアップでサポートされなくなって
仕様外だから挙動がわからず置き換えるべきメソッドがわからないということか
まさに負の遺産だな >>390
横から口出すけど、謝罪はいいとしても、その後の行動が問題だと思う
回答者がヘルプ通りの指摘をする事には、何の落ち度もないように見える
それから、マルチ指摘した回答者がこのスレの人って、一部の人が勝手に騒いでるだけで、ただの憶測だと思うけど 非匿名サイトできいたことをなにげなく5chできいたら
わざわざURLまではってマルチ指摘しにくるとか怖すぎだろ
そりゃ5chも過疎るわ > それから、マルチ指摘した回答者がこのスレの人って、一部の人が勝手に騒いでるだけで、ただの憶測だと思うけど
書き方が悪かった
マルチ指摘した回答者は当然、このスレを知っているけど、ここで騒いでいる人と同一人物はただの憶測って事ね >>395
こちらの質問を〆たあとにこちらへのマルチポスト誘導リンクをはる必要があるのか?
質問者にマルチポストするなって意図はこちらのレスでもう伝わっているだろ
ただに晒したいって意図以外感じられないんだが >>398
指摘は「マルチポストするな」ではなくて、「マルチポストしたなら、適切に対応しろ」だよね
そこが履き違えてる 何このマウンターおじさん
必ず自分のレスでおわらないと満足できない典型的なマウンターじゃん いい加減マルチポストの是非はスレチなんだが
マルチポストのマナーは守れとかいうくせに延々スレチな話題続けるのはマナー違反じゃないのかよ >>394
さらに同一のメソッドがあってどっちが呼ばれているかわからないという
というかjavascriptのメソッドってただのlambdaだから
引数の数で別々の関数作るの無理じゃね
どうやって同じ名前のメソッド存在してるんだ >>402
こうやって締め切った質問にも回答する人がいるから、マルチポスト先を書いておくことは無駄ではないんだよね 引数の数や型を見て処理を変えてるだけ
引数なしならgetter, ありならsetter, とか >>402
teratailにコード載ってるじゃん
何で見ないの? いったん load-handler の方を_loadにリネームしてオーバーロード
第1引数が string じゃなかったらリネームした_loadを呼び出す
引数なしで関数を呼ぶと undefined が入っているから
ver2 まで : load-handler のほうがよばれて引数の関数が設定されていないので何もしない
ver3 から : if ( typeof url !== "string" && _load ) の _load が false になるのでそのまま続行されて
jQuery 3 以降は _load が存在しないから
off = url.indexOf( " " );
の url が undefined なのに indexOf を呼び出そうとして
Cannot read property 'indexOf' of undefined になる
で load-handler の方では
jQuery.fn[ name ] = function( data, fn ) {
return arguments.length > 0 ?
this.on( name, null, data, fn ) :
this.trigger( name );
};
で引数なしの場合trigger('load')が呼ばれる(分岐がかかれてるので公式では保証しない挙動ではない)
なので「triggerにおきかえる」「何かロードしている」はどっちも「まともな回答」だった
ただjQueryさわりはじめて間もない人にソースを読んで自分で理解しろはちょっと無理があるかと
最初に答えた人が周りを読まないとわからないとかまぎらわしいことをいいすぎたんだと思う ↑
ver2 まで : load-handler のほうがよばれて引数の関数が設定されていないので何もしない
はミスなので読み飛ばしてくれ
最初は何もしないかと思ったがよくよむと引数0の場合はtriggerを呼ぶと分岐にかいてあったわ >>406
> で引数なしの場合trigger('load')が呼ばれる(分岐がかかれてるので公式では保証しない挙動ではない)
それ、api.jquery.comに記載されてる? >>408
ドキュメント以外が仕様ではないのなら
ソースを読んで理解しろって回答自体が矛盾してるが? >>408
自分の意見が否定されると顔真っ赤にして即レスしないと気がすまないマウンター
ばればれすぎる 結局まだ解決してねーじゃん
つーかこっちに答え書いてあるのにみてねーのかよ >>414
@katingのことなら、新しい質問始めたし、もう諦めたんじゃないか これ最初に答えた人がメソッドの仕様を理解してないのに
周りのコードを見ろ見ろいいすぎなんだよな
環境変数を見るでもない限り周りのコードで挙動が変わる関数なんてないし
こいつもわかってないくせにごまかして逃げようとしてるだけ
しかもなまじ口調が丁寧なせいで質問者が信用しちゃってるのがタチが悪い
2番目の人も答えは正しいけど
書いた人の意図が〜とか余分についてるからこれじゃ曖昧だわな
最後のやつはただの荒らしだし だったら答えてやれよ
ここヲチスレじゃないからな
これだから仮にもマナーどうこういうやつが5chにリンク先はるとかモラルが欠如してる katingは5chに質問すると質の悪い輩に絡まれる事がようやく学習できたというところか think49はもともと自分から5ch民だって言ったわけだから気にしないだろうけど
迷惑なのは善意で回答してるのにヲチられてるふたりなんだよなー >>420
これで>>369-370が質問者じゃなかったら面白いのに
ほかサイトでみかけた質問を気になって2chできくとか普通にありえるし
迷惑かけそうって思ってあわてて火消ししようとしたところをthink49が晒し者にしたみたいな 回答者や質問者叩くだけで何もしない奴は無自覚なんだな そうなるのがわかるから5chにリンクはるなんて避けるべき
どう考えてもリンクはったやつが悪い
つーか質問者がこっちの質問〆た後に誘導リンクはったんだから回答共有しろや糞回答者 think49に粘着してる奴、過去にthink49と何かあったの?
反論してる人を全てthink49と思いこんでるようだけど、スレ違いの話題を延々と続けられて迷惑してる人が大勢いることにまだ気が付かないわけ?
質問者の為を思うなら、質問者がクローズしたここで主張せずに、teratailで回答してくるべきでしょ 匿名サイトでいることがわかっててしかも毎回レス返してたら
たらおもちゃにされるのは当たり前なんだよなー
そうやって自己擁護するのもわかりやすすぎる
自分が他人だった場合に自分のレスよみかえしてみ
ぶっちゃけどうでもいい他人だったらいちいち擁護なんてしねーから >>430
厳密にはこちらを〆た時点でマルチポスト状態は解除されてるので
質問者はこちらを見る義務はもうないし翌日のやり取り見ると実際見てない可能性が高い
マルチポスト状態を再開したのは他人なのに勝手に誘導リンクはったthink49
こちらの回答を共有する義務があるのもthink49 「think49なんてどうでもいいんだよ
スレ違いの粘着をいつまでも続けるな!」
と心から思うが、どうせ俺もthink49扱いされるんだろうな ご質問です。
当方デザイナー兼コーダーとして、自社サイトの制作に携わることになりました。
その際サーバー側を担当するエンジニアからjqueryはもう古いから、他のライブラリを使うかせめてjavascriptで実装するようにと言われました。
大手のサイト等拝見しても、jqueryは現役ですし、特に陳腐化するような懸念は感じられなかったのですが何か理由があるのでしょうか。よろしくお願いします。 サーバーサイドのコーダーに何がわかるんだよって言ってやれ こういうのはpureJS派とjQuery派の両方にきかないと意味ないから別にいいだろ jqueryでparent(),next(),prev()等の要素の選択において、関数を実行したにもかかわらず存在しなかった場合は何が返ってきますか? jQueryは見つからなかったときの設計が素晴らしいと思う
このおかげでいちいちnullチェックをしなくてすむ 該当する要素が無ければ、length: 0
というObject が返される
要素数0、つまり該当する要素なし
Ruby では、nil が返るから、メソッドチェーンで、
nil からメソッドは呼ぶことができないというエラーになる。
ただし、nil 許容演算子を使えば、エラーにならない
jQueryではエラーにならない。
単に、そこからメソッドを呼ばないだけ >>443
例外処理を別に書かなくてはならなくて、逆に困る >>444
それはお前の思考回路が関数型についてこれてないだけ >>445
アホか
書き方が分からないわけではない jQueryが古いというより今どき沢山のDOMを組み合わせて何かを為すって言うのが古い
Canvasだってあるわけだし、DOMでやるにしてもコンポーネントやシャドーやHoudiniもある
jQueryは排他的で独自すぎるから小さいライブラリをたくさん組み合わせて何かをしたい時に合わない >>446
誰が書き方がわかるかどうかの話をしたんだ?
書く必要がないということに気づいてないから
関数型についてこれないって言ったんだよ >>447
jQueryが排他的?どこにjQueryほど他のライブラリと
組み合わせることが可能なライブラリがあるっていうんだ?
AngularやReactは排他的だがな。
その証拠にAngularとReactを組み合わせることができない >>448
Canvas使って文字を書きましょうってこと >>449
お前のいう書く必要かない「関数型プログラミングの書き方が分からないわけではない」 だからjQueryを使うと要素がない時に例外処理を
書かなくていいから、楽だって話をしてるんだが >>456
お前の中で例外処理が「該当要素がなければ、何もしない」しかないからそういう発想になるんだろ
要素に限らず、jQueryは基本的にエラーを発生させず、出来る事がない場合は「何もしない」
「何もしない処理」が複数回発生し、それが期待通りの動作でなかった場合に原因を特定するのに時間がかかる
エラーで止まるのは、むしろ良い事だ >>457
叫ぶなw まず理由を書け。
何もしない処理が複数回発生するということは、
「期待した処理が行われなかった」ということだろう?
なぜ期待した動作をしてないならば、してないとすぐに分かるはずだが
なぜ特定するのに時間がかかるのか?
なぜエラーで止まるのは良いことなのか?
その理由を書こう
しかし不思議だ。jQueryは要素に対して処理を適用するものなのに
該当要素がないときに該当要素(無いはずなのに)に対して
処理を行うとはどういう意味なのか?哲学的なものを感じるなw
例えば検索結果がないときに「検索結果が見つかりません」と表示するとき
どう書いているのだろうか?classを書き換えればいいだけなのに
それとも他になんか想定してる例でもあるならいってくれ >>458
> なぜエラーで止まるのは良いことなのか?
エラーが発生したら、エラー行周辺を読めば原因を特定可能なんだが、そこまで説明しないとわからないのか…
例外を発生させたことがなくて、発想出来ないのかね ■ このスレッドは過去ログ倉庫に格納されています