+ 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/ その結果 構造・構成がぐちゃぐちゃじゃ評価のしようがない これだけツッコミ受けてるのはまだコードが無い方がマシなレベルで酷いんだと自覚した方がいい いや酷いコードだろうが貼らない口だけヤロウよりはよっぽどマシ。 質問でも質問者がクソコード貼るか貼らないかで大違いだ。どんなクソコードでもいいからなるべく貼ってくれ。お前の日本語?の説明よりよっぽどマシ。 >>38 > IE9以上でお願いします。 はいどうぞ。技巧的なことはしない必要十分なコード function Member(param) { function getName(order) { var keys = (order || 'last-first').split( '-' ); var values = keys.map(function(pos) { return param[pos]; }); return values.join( '-' ); } return {getName: getName}; } var mem = new Member({first: '活男', middle: 'ジャイアント', last: '磯辺'}); var name = mem.getName(); // '磯辺-活男' >>45 JSって色んな書き方ができる言語だけど、 逆に言うと回答する際細かい部分で何が良いかは変わってくるということ 特にここは初心者が質問するというスレの性質上 ただ機械的にQ&Aを返すんじゃなくて根本的に待ったをかけて『モラル』を教える必要もある 例えばファッションで、ネクタイをかっこよく結びたいっていう質問が来た時、 下ふんどしで下駄の写真が付いてきたらツッコミ入るでしょ そもそもネクタイ無い方がいいんじゃねってこともあるし、 細かい部分から色んな関係性を想定して全体のバランスを考えて初めて どう結ぶのが良いかって言うのが求まるんだから、手を抜いちゃ駄目だよ >>34 だって関数やメソッドを1つ増やせば良いとも考えられるしね はたまた>>42 のようにクラスの設計の段階で組み立てるのか、 結局他の方法も含めて状況による 俺が現状で回答できるのは>>35 で言ったようにおかしい部分を直して まともに検討できるコード例を持ってこようということ 話はそこから >>35 > そもそも、名前を書き換えられるのは変 変じゃないよ >>50 変じゃない場合もあると思う ただ「人」を表すクラスのインスタンスっていうのは「個人」 「名前」っていうのは「個人」のIDのようなもの インスタンスのIDに当たるものを書き換えて別の存在にするっていうのは、 やってはいけないとまでは言うつもりはないが、一般的には大胆すぎる 基本的に、インスタンスっていうのは、必要なときに新たに生み出して、使い捨てるもの 書き換えて再利用するなら、クラスやコンストラクタを使わなくても良い >>51 > 「名前」っていうのは「個人」のIDのようなもの 名前をIDにしたらだめ 被るだろ >>53 するどいツッコミだが、 アイデンティファイではなく、アイデンティティという言葉を言いたかった DOMのタグもtagNameは書き換えできないし、できたら変だと思うだろう? そういうことだ >>54 だから、名前が一意になるオブジェクトはあるだろうが 今回のMemberの場合なら名前をにしたらダメだろっていってる そして名前は変わるだろと言ってる 鋭くもなんともねーよ。常識的な話だ 今回のMemberの場合なら名前を一意にしたらダメだろっていってる >>54 > アイデンティファイではなく、アイデンティティという言葉を言いたかった 更に意味わかんねーよ 動詞 アイデンティファイ identify の 名詞形が アイデンティティ identity だ 動詞ではなく名詞にしたかった言いたいのか? >>54 > DOMのタグもtagNameは書き換えできないし、できたら変だと思うだろう? なんでnameの話してるのに、tagNameの話になってんだか DOMのタグであれば、フォーム要素がnameを持っている。 もちろん書き換え可能だ お前もうめちゃくちゃだなw >>58 "identity"と"identifier"はIT用語では別物だぞ? まあそれは良いし、お前の頭がポンコツなのはわかった ポンコツなお前とメチャクチャな俺でこれ以上スレを汚すのはヤメヤメ あーはいはい生産性0の話はもうオワリ!ここまで! 今度は用語が変わりやがったw アイデンティファイ identify ↓ アイデンティティ identity ↓ アイデンティファー identifier お前混同してるだろ ついでになんか見つけたw "Identity" と "Identifier" を混同して "ID" と言わないように 一般的に使われる "ID" は "identifier" (識別子)の意味であって、 "identity" (同一性)の意味ではない。ぜんぜん違う。 http://zerobase.hateblo.jp/entry/2013/03/02/181858 >>59 生産性0なのはお前のレスでは? > "identity"と"identifier"はIT用語では別物だぞ?(理由なし) 理由も言わずに、違うったら違うんだ!って言ってるだけ 説得力0だぞ? >>46 >コードが無い方がマシ こういうのに限ってコード出せと言うくせに >>44 も読めてないのかな >>51 割り込み失礼 各要素に複数の値持たせ、2つの要素同士または複数要素の、全値を交換するとする (各要素にidがあるがそれを交換するのはNG) 全値を各々操作するとバグの原因になりかねないので インスタンスに持たせてそれを交換 値は変わることもある これはダメ? 63の補足 結局、値は各要素に持たせずインスタンスに持たせてる それが普通。想定してない使い方をしたときにまで対応する必要はない >>36 どうもです。思ってた以上に入り組みますね。 元文のまま2行でやるか関数作ろうかと思います。 function func(str){ mem.lastName = str; mem.setName(); } chromeのデベロッパーツールの表示について質問です。 画面右の赤線で囲った部分を、画像左の赤線内と同じHTMLの表示に変える方法を教えてください。 https://dotup.org/uploda/dotup.org1486462.jpg >>35 >メンバーというクラスなのに、固定要素への書き出しのメソッドを持つのは変 どう変?正解コードプリーズ。 >>70 左の画像には、<div class="form-group"> とあるけど、 右の画像には無い 左右は、全く異なるものだから、関係性がない http://klutche.org/archives/682/ すいません、このサイトでDIVブロックコンテンツをクリックで切り替えってのやってるんですが これ2DIVを同時制御したんですが、この場合どうやればいいんですかね? 該当ソースの↓ var activeTab = $(this).find("a").attr("href");//アクティブタブコンテンツ $(activeTab).fadeIn();//アクティブタブコンテンツをフェードイン var activeTab = $(this).eq(2).find("a").attr("href")とかnext();とかやってみたんですがだめでした <div class="tab_content" id="tab1"> <img src="01.jpg" width="200" height="150" alt="01"><br> コンテンツ1 </div> ↑のブロック2つ続けてコピペ、同時表示したいのです id="tab1" って書いてあるだろ セレクターに、$('#tab1') を使え MonacaとAngularJSで開発を行っているのですが、時刻を取得し更新するプログラムが動きません。ソースは次のとおりです。 【JS】 <script> var module = ons.bootstrap("myApp",[]); module.controller('MainController',function($interval){ var date = new Date(); var now_hours = date.getHours(); var now_minutes = date.getMinutes(); var now_seconds = date.getSeconds(); this.hours = now_hours; this.minutes = now_minutes; this.seconds = now_seconds; $interval(function(){ date = new Date(); now_hours = date.getHours(); now_minutes = date.getMinutes(); now_seconds = date.getSeconds(); }, 1000); }); </script> 【HTML】 <body> <ons-navigator page="main.html"></ons-navigator> <ons-template id="main.html"> <ons-page ng-controller="MainController as ctrl"> <div class="content" style="text-align: center;"> <p>現在の時刻<br />{{ctrl.hours}}時{{ctrl.minutes}}分{{ctrl.seconds}}秒</p> </div> </ons-page> </ons-template> </body> 一応、実行時の時刻は表示されるのですが、intervalで時刻の更新ができていません。 console.logでnow_secondsの内容を出力させてみると(intervalで)、きちんと取得できているみたいです。 ということは時刻が反映されていないだけだと思うのですが、その方法をどなたかご教示願います。 (ソースコードが見にくいのはすみません。投稿の際の改行数が多いみたいで...) ここはjQueryのスレなのでこっちでどうぞ + JavaScript の質問用スレッド vol.132 + https://mevius.5ch.net/test/read.cgi/hp/1520329583/ リンクをポップアップで開く系のjQueryプラグイン使ってるのですが Biggerlinkでリンクをdiv要素に拡大させた部分をクリックすると通常ウインドウで 開いてしまいます これをうまく回避する方法はありますか? >>80 残念ながらjQueryのプラグインの話はこのスレの対象外なんだよ jQueryは世界中で多くの人が使っているが、 そのプラグインを使ってる人は少ないだろ? そんな話をされても使ってる人がいない jQueryの話ではなくそのプラグインの話になってしまう Biggerlinkとやらを見るとjQuery 1.3と書いてあるし 10年ぐらいの前のものだし別の使ったら? とは言いますが他のスレではjQuery自体の話題が禁止されてたりもしますし ここ以外で聞ける場所が見つかりません 罪のない包皮を切り刻んでぼったくった金で飯食ってるやつが偉そうに jQueryUI みたいな有名なプラグインなら、使っている人も多いだろうが、 そんなに昔の、近頃開発されていないようなプラグインは、 代わりのものを探した方が良い biggerlinkは代わりのものがないんだよな html5になってブロック要素をリンクできるようになったとはいえ リンクが複数だとこれ使わないと面倒だし <div class="biggerlink"><a></a></div> SASS で、<a>タグがあれば、 その親タグに、<div class="biggerlink">を追加するような、機能は無いのか? それか、jQuery で自作するとか は? そのbiggerlinkとやらがまともなjQueryプラグインなら $('a').biggerlink() とかするだけだろ つーかBiggerlinkって何かと思えば http://otani-webs.com/lab/javascript/100823.html > box全体にリンクを適用させる場合、divをaタグで括るわけにいかないので苦労するわけですが、 言ってることが古い。HTML5になった今はdivをaタグでくくればいいだけ こんなもん完全にいらねーじゃねーかw >>90 div要素にaタグ複数入れる場合は html5じゃできねーだろ > div要素にaタグ複数入れる場合は <div> ・・・div要素に <a href="">1</a> ・・・ aタグ <a href="">2</a> ・・・ 複数入れる <a href="">3</a> ・・・ 場合は </div> ・・・昔からできますがなにか? すごくないしw 普通 というか>>91 が何ができないと言ってるのかさっぱり分からん 少なくともdivにaタグ複数入れられるし、 逆にaタグにdivだって入れられる ということでBiggerlinkは捨てろが正解 >>94 >>91 じゃないから本意はわからんけどさすがに君が状況を理解できてなさすぎだろう HTML5では <a href="./page1.html"> <div> </div> </a> はいいけど <a href="./page1.html"> <div> <a href="./page2.html></a> <a href="./page3.html></a> </div> </a> これができないと言いたいのでは? >>95 そういうときは普通の人はaタグのネストというんで ぜったいに違うね。(もしそうならそいつが馬鹿) どう考えてもdivにaタグ入れられないなんて主張してるわけないだろ バカすぎワロタ いや? >>91 が言うには > div要素にaタグ複数入れる場合は > html5じゃできねーだろ らしいぜ?w 話の流れを読めてないのはおまえやで 恥の上塗りすんなよ恥ずかしいやつだな > div要素にaタグ複数入れる場合は というのが aタグの中にaタグを入れるという意味だとしたら、 そもそもaタグをネストしてどうするつもりだって話になる。 リンクの中に別のリンクを入れるって意味不明だし どんだけサイト制作の経験少ないねん 例えばだけどRSSリーダーを作るとする 記事ひとつに対してカード型のDiv要素を作ってその中に 画像とタイトルに記事へのリンク サイト自体へのリンク お気に入りに追加するボタンやその他操作リンク を入れるとする スマホからのアクセスを考えるとカード型Div要素全体を記事へのリンクにしておきたい この場合がまさにそうだろ 俺はこういった場合別の方法で回避してるけどね そうだよな。その別の回避方法を使えば良いわけで aの中にaを入れるとか使いづらくしてるだけだわw 許されるよ ごみみたいなサイトをつくってあれはおかしいこれはおかしい といってるやつよりFeedlyやInoreaderを作ってるやつの意見のほうが貴重 そういう事言うのやめなよ PV100/dayのサイトで何が悪い? コーディングは完璧だぞ? まさかと思ったけど、div要素をクリックしたら ページを移動させるためだけに、あんなプラグイン使ってるの? 5行ぐらいか多くても10行も行かずに作れそうなのに じゃあ作れるっていうよw 1. セレクタ & イベントハンドラ ( 2. デフォルト処理キャンセル 3. リンク先情報取得 & オープン 4. 括弧閉じ ) やることと言ったら、これぐらいなもんだろ >>103 >>102 じゃないけど、それぐらいすぐに思いつかないと プロ失格だぞ。プロじゃないかもしれないけどw relativeとabsoluteを使えばいいだけ aの中にaとかアホすぎるw >>102 がまだまだ未熟に感じるのは クリックできる場所と、リンクするもの が違うってことを理解してないからだね リンクがクリックできるのはブラウザが提供している機能であって リンクは単に他のページ(リソース)とリンクしているという情報なだけ だからdiv要素全体をクリックしたいのと div要素全体をリンクにするというのは意味が違う div要素が仮に記事へのリンクだとしたら、 div要素の内容と記事がつながっているわけで、 そこにサイト自体へのリンクが入っていることはおかしい。 なぜならリンクしてないから 「お気に入りに追加するボタンやその他操作リンク」と書いているが これは他のリソースへのリンクではないので、a要素を使うのは間違い (その他の操作の内容にもよるが、少なくともお気に入りに追加はリンクではない) a要素をリンク可能な場所みたいに考えてるから、変な構造を作ってしまう。 何と何をつなげるのか?で考えれば自ずと、記事を表すの中に入れるのは間違いだおt 気づくはず。そのうえで見た目をどうこうしたいのであればそれはCSSの役目 >>115 おっしゃお気に入り追加ボタンをa要素で実装してる inoreaderに説教してこい ねぇ? >>115 に 反論はしないの? 大手だって間違えてるぞ!って言われても はい、大手でも間違えますとしか言いようがないんだが クレームつけるのは自分でやってくれって話 ここで説教はしますけど大手は怖いから説教しませんw じゃあここに大手読んできたら? なんで自分で反論せずに、大手様に反論して貰おうとしてるのさw 自分で反論する能力がないからに決まってるだろがー! そもそも反論する必要あんのか? 何と戦ってるのこの長文マンは 頭大丈夫か?統合失調症ちゃうか なのに反論してみろって喧嘩ふっかけてて怖いな 被害妄想過ごそう 「大手もやってるから俺も正しい」しか主張出来んのだろ 大手だからこそバリデーションくらいして欲しいわ 顔真っ赤な奴ばっかだな なんでこう誰でもできるような低賃金言語ってこうもすぐ荒れるかな もっと他のことにプライドもてよクソ共 誰でも日本語書けますが、プロは日本語を書いて大金を稼いでいます 一番js書いてんのがgoogle オフィススイート全部jsで書くとか悪夢だ… しかもtypescript無い時代に… え? Google はGWTとか使ってるんでしょ? Javaで作ればJavaScriptも作ってくれるとか? もしかしてもうオワコン? ゴミをたくさん作ってるのもGoogleだなw 685Name_Not_Found2018/03/28(水) 22:28:13.59ID:??? >>682 いや、そんなにないと思う どちらかと言えばそれは当てはまるもの全てに処理したいから、class使ってねということだろう そういう場合はカスタムエレメントでも使ったほうが良い そうすれば要素が作られた時、挿入されたときに即座に適宜処理ができるんだから あとから要素をclassで検索して機能を付与するとか、 スマートな解決策のように見えるかもしれないけど、それって実際はただのハックだからね? どっかの誰かが作った物があって、それに対してハックしたいなら非常に便利が良いと思うよ でも今どき、オマケでJSによってページを補正するみたいな開発や考え方はしないからね HTML5の勧告に纏わる公式文書にも書いてあったけど、 HTMLっていうのはアプリケーションプラットフォームになってるんだよ つまり土台であって、その上にJSとか乗っかって1つのものができるわけ それが横並びだとか、化粧程度だとか、もしくはJSはHTMLを改造するためのドリルみたいに 捉えてるのだとしたら、その考え方は古臭いと思うよ 686Name_Not_Found2018/03/28(水) 23:31:40.90ID:??? > そういう場合はカスタムエレメントでも使ったほうが良い そのカスタムエレメント作る用途で使えるって話でしょ? っていうか、どうやってそれ作るの ちょっとサンプル書いてみてよ 687Name_Not_Found2018/03/28(水) 23:32:38.83ID:??? > HTMLっていうのはアプリケーションプラットフォームになってるんだよ それは一部の話ね。 ブログ、ニュース、企業サイト、情報掲載と、 これらウェブの大半はアプリケーションじゃない jq関係ないけど HTMLがアプリケーションプラットフォームって考え方は ぶっちゃけ危険極まりないよね・・・ >>136 俺もそう思う。 HTMLで文書じゃなくてアプリケーションを作るっていうのは ごく一部だよ 大抵はHTMLとCSS、そしてJavaScriptでちょっと味付け これから変えていこう!なんて波は来てない 素のJS のremove では、動かないブラウザがあるから、 素のJSでは、661 のように書く だから互換性が高い、jQuery のremoveを使った方がよい 一々、各ブラウザの機能を調べて、素のJSで対応するのが面倒くさい。 古いブラウザを使っている奴もいるし classに対して処理振るのが最善なケースってどんなのがある? 同じ処理つけたい要素を不定数生成しなきゃいけないときは createElementの時listenerつけたりhandlerの内側でやらせる手がある classで処理振ると他の場所でclassを 使いまわしされたら想定外のバグが出そう 個人レベルの小規模なら問題にならないかもだけど >>139 それ単にクラスの名前つけルールが無いと困るって言ってるだけだよ。 CSSでも発生する問題 .enabledというクラス名を付けていたら、 他の場所で使い回されて困った。 これと何も変わらん >>140 デザイナはcss変えたために自分の領域で問題が出ればすぐ把握できる けどjavascript側で問題が出てもわからない だから切り分けが大事 カスタムエレメントどうやって作るの?という質問の意味が分からない 好きな要素をextendsしてregisterElementするだけじゃないか そこにjQueryを使う?好きにしたら良いと思うが、 やっぱりjQueryありきの考え方だねと言わざるを得ないね でも他のライブラリとかも使うかもしれないし、 jQueryで処理しちゃあ生要素に戻して他で処理するみたいなクソコードになると思うよ それなら最初からjQUeryで完結させたほうが良い jQueryはそういう他との相容れなさが欠点だからね remove()が使えない? 使いたい機能があって使えない環境があるなら ポリフィル書くなり用意するなりすればいいじゃないか そんな100も200も要るようなことなんて無いしね それが面倒だからjQuery使うというのはOK だけど最初から使ったほうが良いという考え方はNG この違いが分かるか? 結局jQueryありきの価値観の人達って、他と相容れないjQueryを使いすぎて 例えばちょっとポリフィルを作って数個の素朴なライブラリを組み合わせて使うとか、 他のフレームワークを使った方が今回は良いんじゃないかとか考える能が無くなってるんだよ jQueryだってやり方によっちゃ組み合わせて使える力も持ってるけど 上のカスタムエレメントの件で分かるように使いこなせてないしね 要するに考え方がいつまで経っても超古臭くて閉鎖的なんだよね とりあえずjQuery使っとけばいいだろうみたいなのはやっぱり良くないよ 物は1つ1つ考えて良く使わないと 他と相容れないってw JavaScriptに取り込まれてること自体が jQueryの多大な貢献を示していると思うけど >>143 > カスタムエレメントどうやって作るの?という質問の意味が分からない > 好きな要素をextendsしてregisterElementするだけじゃないか だから、このスレか、jsfiddleなどに 実際に動くコードを一つ書くだけですよ。 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる