+ JavaScript の質問用スレッド vol.113 +

このエントリーをはてなブックマークに追加
1Name_Not_Found
JavaScript を学ぶあらゆる人のための質問スレッドです。
長いコードはコード投稿サイトを利用すると便利です。
 http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/
2Name_Not_Found:2013/11/28(木) 13:31:53.55 ID:???
■主要FAQ (全部は http://fiddle.jshell.net/vSqKr/33/show/ )

(※もはや古い情報です。今は当てはまらないこともあるので注意)

Q1. 別窓・フレーム内容やローカルファイルを読み書きしたいのですが…
A1. 別サーバのページやファイルの内容はセキュリティ制約でアクセス不可です。
Q2. document.write()でページ内容を追加したいのですが…
A2. 一度表示完了後にwriteするとページ内容が消去されます。DOM等別手段を。
Q3. table内容のinnerHTMLやDOMでの変更がうまく行かないのですが…
A3. IEではtable/tbody/trのinnerHTML書き換え不可です。DOMを使いますが、
  DOMの場合tableの直下にはtbody要素が(作らなくても)あることに注意。
Q4. フォーム部品名を変数にした「...myform.変数名.value」が動きません…
A4. 「document.forms.myform.elements[変数名].value」でどぞ。
  JavaScriptでは一般に「obj.x」と「obj['x']」は同じ意味です。
  グローバル変数はwindowのプロパティなので「x」と「window['x']」も。
Q5. CSSで設定した背景色がe.style.backgroundColorで取得できないのですが…
A5. 取得には document.defaultView.getComputedStyle() を使う必要あり。
  IEでは要素オブジェクトのプロパティcurrentStyleを使う。
Q6. setAttribute("class","foo")、setAttribute("onclick","bar()")が動きません…
A6. IEではそれは不可。「obj.className="foo"」「obj.onclick=bar」でどぞ。
Q7. タイマーやイベントハンドラに設定するコードにthisを含めたいのですが
  「"...this..."」とか「function(){...this...}」ではうまく行きません。
A7. 実行時にthisが別のものを指してしまってる。以下のようにthisを束縛保存。
  「function(x){return function(){...x...};}(this)」
Q8. input type="file"の値を設定(参照)できないのですが…
A8. セキュリティ制約のため設定は絶対に不可。参照はブラウザにより不可。
Q9. getElementById('ID名')や$('ID名')で要素が取れないのですが…
A9. コード実行時点でHTMLがそこまで読まれてない。window.onload 中でやるとか
3Name_Not_Found:2013/11/28(木) 13:32:57.80 ID:???
■前スレ
+ JavaScript の質問用スレッド vol.112 +
http://toro.2ch.net/test/read.cgi/hp/1383465702/

■過去スレ全集
http://www2.atpages.jp/mirror/2ch/javascript/
http://usamimi.info/~mirrorhenkan/2ch/javascript/ (閲覧のみ)

■テンプレ案
http://jsfiddle.net/fH4cC/21/show/

■関連スレ
ECMAScript デス 4
http://toro.2ch.net/test/read.cgi/tech/1325448978/
【jQuery】JavaScript ライブラリ総合質問所 vol.3
http://toro.2ch.net/test/read.cgi/hp/1369444026/
WSH(・∀・)スレッド! Part 5
http://toro.2ch.net/test/read.cgi/tech/1350201791/
【WHATWG】HTML5 Part4【W3C HTML WG】
http://toro.2ch.net/test/read.cgi/hp/1329529892/
Webサイト制作初心者用質問スレ part236
http://toro.2ch.net/test/read.cgi/hp/1329529892/
CSS初心者スレッド=12th=
http://toro.2ch.net/test/read.cgi/hp/1343429848/
Canvasについて語ろう
http://toro.2ch.net/test/read.cgi/hp/1305093769/
4Name_Not_Found:2013/11/28(木) 13:33:34.97 ID:???
■各種仕様 ( http://fiddle.jshell.net/vSqKr/33/show/#Link も参照 )
◆ Standard ECMA-262
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/ (ECMAScript 3 和訳)
http://www.ecma-international.org/ecma-262/5.1/ (ECMAScript 5.1 HTML版)
http://people.mozilla.org/~jorendorff/es6-draft.html (ECMAScript 6 有志HTML版)
http://kangax.github.io/es5-compat-table/ (ECMAScript 5 compatibility table)
http://kangax.github.io/es5-compat-table/es6/ (ECMAScript 6 compatibility table)
◆ HTML Standard (HTML5)
http://www.whatwg.org/specs/web-apps/current-work/multipage/
http://momdo.s35.xrea.com/web-html-test/spec/WD-html51-20130528/Overview.html (HTML5.1 部分訳)
http://www.hcn.zaq.ne.jp/___/WEB/WebStorage-ja.html (Web Storage 和訳)
◆ Document Object Model (DOM) / CSS Object Model (CSSOM)
http://www.hcn.zaq.ne.jp/___/WEB/DOM4-ja.html (DOM Standard (DOM4) 和訳)
http://www.w3.org/TR/DOM-Level-3-Events/ (DOM3 Events)
http://www.w3.org/TR/uievents/ (UI Events)
http://www.hcn.zaq.ne.jp/___/WEB/cssom-ja.html (CSSOM 和訳)
http://www.hcn.zaq.ne.jp/___/WEB/cssom-view-ja.html (CSSOM View Module 和訳)
◆ その他のWeb関連仕様
http://domparsing.spec.whatwg.org/ (DOM Parsing and Serialization - innerHTML等)
http://www.hcn.zaq.ne.jp/___/WEB/XHR-ja.html (XMLHttpRequest 和訳)
http://www.hcn.zaq.ne.jp/___/WEB/File_API-ja.html (File API 和訳)
http://www.whatwg.org/specs/ (WHATWGの仕様一覧)
◆ MDN (Netscape/Mozilla)
https://developer.mozilla.org/ja/docs
◆ JavaScript Garden (ja)
http://bonsaiden.github.com/JavaScript-Garden/ja/
◆ JSON (JavaScript Object Notation)
http://www.json.org/json-ja.html
◆ MSDN Library
http://msdn.microsoft.com/ja-jp/library/yek4tbz0.aspx (JavaScript)
http://msdn.microsoft.com/ja-jp/library/cc427807.aspx (JScript)
http://msdn.microsoft.com/ja-jp/library/cc409712.aspx (DHTML)
5Name_Not_Found:2013/11/28(木) 13:36:40.83 ID:???
>>1
おつ
6Name_Not_Found:2013/11/28(木) 15:18:08.16 ID:???
>>1
なぜ「質問を書く上で」を削ったのか

>>3
テンプレ最新は http://jsfiddle.net/fH4cC/28/show/
7Name_Not_Found:2013/11/28(木) 15:23:07.24 ID:???
いらないからに決まってんだろ
このスレはリベラルにいきまーす
主張したい人は次にスレ立てて好きに主張して下さい
8Name_Not_Found:2013/11/28(木) 15:32:26.82 ID:???
前スレで暴れていた人か
>>1はスレ主の独自ルールなのでテンプレは>>6を参考にどうぞ
9Name_Not_Found:2013/11/28(木) 15:40:21.95 ID:???
>>7
好きにやりたいならタイトル変えて別にスレッド作れよ
お前の身勝手に巻き込むな
10Name_Not_Found:2013/11/28(木) 16:01:16.34 ID:???
このスレは教えて君の教えて君による教えて君の為のスレだね
>>1は自分が質問しやすいように質問時の制約をなくしたんだろうね
前スレを乗っ取るやり口は姑息だね
タイトルに【教えて君歓迎】と付ければ納得したのに
11Name_Not_Found:2013/11/28(木) 16:20:01.28 ID:???
乗っ取りってアホかよ
スレが立たないから立てただけでテンプレなんて俺はもともとどうでもいいんだよ
12Name_Not_Found:2013/11/28(木) 16:37:20.78 ID:???
> テンプレなんて俺はもともとどうでもいいんだよ
どうでもいいならテンプレを変更する必要はないだろう
自分の都合がいいようにテンプレ改変してるとしか思えないな
13Name_Not_Found:2013/11/28(木) 16:45:24.80 ID:???
そもそも>>7でいらないから省いたと明言してるしねえ
今更「どうでもいい」と開き直られても説得力のかけらもないね
14Name_Not_Found:2013/11/28(木) 16:55:22.79 ID:???
個人の主張部分は俺の主張とは違うからね
思ってもないことを繰り返す義理はない
だからといって他人が主張する行為自体は否定しないので
次にスレ立てる時には好きにしたらいい
15Name_Not_Found:2013/11/28(木) 16:56:42.80 ID:???
>>1は前スレの↓だろ

> 972 名前:Name_Not_Found[sage] 投稿日:2013/11/26(火) 13:09:17.28 ID:???
> テンプレを作成し、遵守するという態度は尊重する
> 宗教を信じている人々の態度を尊重するのと同様。
> しかしこの宗教を信じるべきだ、と押しつけてくるのなら話は別だ
> 俺も自分の宗教を他人に押しつけたりなどはしていないのだから

テンプレ改変しておいて「俺も自分の宗教を他人に押しつけたりなどはしていないのだから」とかどの口がいうんだろうな
16Name_Not_Found:2013/11/28(木) 17:05:25.06 ID:???
> 個人の主張部分は俺の主張とは違うからね
「JavaScript を学ぶあらゆる人のための質問スレッドです。」は>>1の主張だろう
意図的に質問者の許容範囲を広げておいて「俺の主張とは違う」はないな
17Name_Not_Found:2013/11/28(木) 17:20:35.25 ID:???
・「質問を書く上で」を削った理由は「いらないからに決まってんだろ」
・「テンプレなんて俺はもともとどうでもいい」といいながらテンプレ改変してる
・テンプレ改変しておきながら「個人の主張部分は俺の主張とは違う」

突っ込みどころ満載なんですけど
18Name_Not_Found:2013/11/28(木) 17:27:59.15 ID:???
>>7
なんで関連スレまでリンク切れの古いのに替えてるの
19Name_Not_Found:2013/11/28(木) 17:33:42.50 ID:???
長い年月をかけて作られてきたテンプレを立てる人の任意で改変していいと思っている辺りに協調性(社会性)の欠如を感じる
社会に出たら社内規則を平気で破って、叱られても「これこれこういう理由でこうしたらいいと思いました」と開き直るタイプだな
20Name_Not_Found:2013/11/28(木) 17:42:08.93 ID:???
出しゃばりは迷惑だな
21Name_Not_Found:2013/11/28(木) 17:43:25.93 ID:???
>>18
関連スレは前スレと一致するね
次スレチェックするのが面倒くさくて前スレからコピペしたんだろうね
あるいはリンク切れになる事さえ思い至らなかったのかもね
http://jsfiddle.net/fH4cC/28/show/ は最新スレに追従しているというのにね
22Name_Not_Found:2013/11/28(木) 18:11:51.24 ID:???
>>16
いやそこは俺の主張じゃん
だから俺の主張部分は次の人が上書きしていいよって言ってんの
どうでもいいことで騒ぎすぎ
さあ質問行きましょう
23Name_Not_Found:2013/11/28(木) 18:31:19.87 ID:???
都合の悪い質問に対してはぐらかすところは前スレと同じだな
24Name_Not_Found:2013/11/28(木) 18:42:38.21 ID:???
前スレより。

> http://toro.2ch.net/test/read.cgi/hp/1383465702/970
> 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
テンプレ案に反映した。
http://jsfiddle.net/fH4cC/29/show/
25Name_Not_Found:2013/11/28(木) 18:55:31.52 ID:???
>>22
だからテンプレはどうでもよくないんでしょ
自己矛盾に気が付かないあたりは真性なの?
26Name_Not_Found:2013/11/28(木) 19:09:11.52 ID:???
>>25
誰がどんな主張をしようが自由
しかしそれを聞くのも聞かないのも自由。
俺は俺の考えで、こうした方がスレが良くなると思ったことを行なったけど
だからといって自分のテンプレに従わない人に文句を言ったりはしない
矛盾どころか一貫してると思うけどね
27Name_Not_Found:2013/11/28(木) 19:20:23.40 ID:???
「テンプレなんて俺はもともとどうでもいい」と矛盾してるだろ
もう相手にするだけ無駄だな
28Name_Not_Found:2013/11/28(木) 19:21:02.95 ID:???
言うことを聞けとかほざいてないんだから矛盾してないだろ
アホなのか?
29Name_Not_Found:2013/11/28(木) 19:23:48.64 ID:???
テンプレはスレを立てた人間の希望であってなんら強制力を持つものではない。
そして質問スレにおいては質問者が最上位、回答者が次に位するものであって
それ以外の意見はもっとも卑しむべき書き込みだということを理解するように。
30Name_Not_Found:2013/11/28(木) 19:41:20.31 ID:???
スレ主が勝手にルールを作っていいわけないだろ
ルール無用の場所と勘違いしてんじゃねーよ
31Name_Not_Found:2013/11/28(木) 19:50:03.41 ID:???
>>29
言っても伝わらないだろうからこれで最後にするけど

何がしかの期待があるから要望を出す事をわかってないでしょ
本当にテンプレなんてどうでもいいと思っているなら要望すらないはずなんだよ
要望がないなら周りの人に合わせて前スレからテンプレを変更すべきではなかった
テンプレに強制力がない云々は関係ないの
あなたに要望があること自体がテンプレがどうでもよくないことを示してるの
32Name_Not_Found:2013/11/28(木) 20:00:49.97 ID:???
詭弁すぎw
他人の主張をそのまま転載しなかったのは単に俺の美意識でしかない
なんら強制力を認めてないよ、他人のテンプレにも自分のテンプレにもね
33Name_Not_Found:2013/11/28(木) 20:01:47.45 ID:???
以下質問以外書き込み禁止
34Name_Not_Found:2013/11/28(木) 20:05:43.76 ID:???
そういや vol.111 でもテンプレ議論してたらさっさと次スレ立てればいいだろって次スレ立てて勝手にテンプレ改変してたが、同じ奴か
http://toro.2ch.net/test/read.cgi/hp/1381678387/931

> 931 名前:Name_Not_Found[sage] 投稿日:2013/11/03(日) 17:19:03.64 ID:???
> >>924-926
> こういう自治厨って見てて哀れだわw
> 出来もしないことをグダグダ議論してるだけ。
> どうせ他人を操作することなんて出来ないんだから
> さっさとやってしまえばいい。
> 俺みたいにな
> + JavaScript の質問用スレッド vol.112 +
> http://toro.2ch.net/test/read.cgi/hp/1383465702/

次スレ立てる奴が勝手にテンプレ改変していいと本気で信じてるんだろうが、次スレ立てる度に勝手に改変されるのは迷惑だわ
周囲の意見を伺うことを知らないお子様思考なんだろうな
35Name_Not_Found:2013/11/28(木) 20:09:03.28 ID:???
36Name_Not_Found:2013/11/28(木) 20:10:00.17 ID:???
windowがリサイズされた時に、任意のオブジェクトがそのイベントを受け取りたい場合
どうやるのがベストですか?
$(window).on('resize','.hoge',function(e){});
のようにやっても発火しないみたいです
やりたいことのは、ウインドウがリサイズされた時のコンポーネントの再描画です
37Name_Not_Found:2013/11/28(木) 20:11:42.12 ID:???
>>34
いや別人だが?
テンプレに何らかの強制力があると思ってるボケナスへの反感という意味では通じるものがあるかもね
38Name_Not_Found:2013/11/28(木) 20:16:15.26 ID:???
そもそも、「テンプレに強制力がない」という>>1の認識が皆と一致してないところが問題なんだが
これだけ批判をもらっても自分の認識を改めようとしないとは社交性のない奴だな
39Name_Not_Found:2013/11/28(木) 20:24:54.51 ID:???
馬鹿じゃねーの
強制力があると思ってる方が頭おかしいわ
俺は事実を語っているに過ぎない
テンプレに書いてたら参加者が言うことを聞くってどんな魔法なんだよ
40Name_Not_Found:2013/11/28(木) 20:25:19.10 ID:???
前スレとあまりにも趣旨が違うのでこのスレは隔離スレにして新スレを立てたらどうかな
このスレは>>1にそのまま使ってもらって次スレも勝手に立ててもらえばいい
既に>>1をフルボッコにするスレになってるし、こんな奴は迷惑だから次スレにも来て欲しくない
41Name_Not_Found:2013/11/28(木) 20:26:18.30 ID:???
>>40
幼稚すぎw
勝手にしろよ
もちろんそれも自由だよ
42Name_Not_Found:2013/11/28(木) 20:28:14.88 ID:???
むしろ望むところだわ
じゃあこっちはリベラルかつ向上心の高い人々のための質問スレにするね
小舅みたいなクズは勝手に質問スレ立てとけよw
43Name_Not_Found:2013/11/28(木) 20:33:43.36 ID:???
好戦的なやつだなー
こんな奴に常駐されたら荒れる事必至だな
44Name_Not_Found:2013/11/28(木) 20:35:52.70 ID:???
スレの潤滑な運行を妨げる奴に対してのみ反論してるだけだよ
どんな質問でも、どんな回答でも、そんな書き込みよりはマシだからね
45Name_Not_Found:2013/11/28(木) 20:38:26.69 ID:???
相当な負けず嫌いなんだな...
46Name_Not_Found:2013/11/28(木) 20:47:01.54 ID:???
>>1は13:30から今までずっと常駐してるのね。。。
47Name_Not_Found:2013/11/28(木) 21:47:48.47 ID:???
>>40
批判が多い上に質問スレとして機能してないようなので新スレ立てましょうか。
テンプレは>>24でいいですかね。
前スレをvol.113に書き換え忘れているようなのでそのまま使えそうではあります。
48Name_Not_Found:2013/11/28(木) 22:06:24.92 ID:???
>>35
提案リストに反映した。
http://jsfiddle.net/fH4cC/30/show/

>>47
> 前スレをvol.113に書き換え忘れているようなので
指摘ありがとう。
>>24は修正漏れだが、このまま次スレを立てるようなので本版でも前スレはvol.112のままとした。
テンプレ案URLは http://jsfiddle.net/fH4cC/30/show/ にしてくれると嬉しい。(テンプレ本文は変更なし)
49Name_Not_Found:2013/11/28(木) 22:31:44.50 ID:???
スレ立てできませんでした。
お手数ですが、どなたかスレ立てをお願いします。

>>48
新スレを立てようとしてわかったことですが、>>1の文章量が多すぎて投稿できないようです。
>>1の「質問テンプレート」を>>2に移せば投稿できそうだったので、テンプレ案を更新してみました。(結局、私は規制で立てられなかったのですが)
http://jsfiddle.net/fH4cC/31/show/
異論がなければ上記URLを参考にスレ立てをお願いします。
50Name_Not_Found:2013/11/28(木) 22:45:23.55 ID:???
>>7>>47もただのスレ立て荒らし
51Name_Not_Found:2013/11/28(木) 23:15:13.05 ID:???
否定するなら代替案を出したほうがいいよ
52Name_Not_Found:2013/11/28(木) 23:25:29.09 ID:???
>>1が質問だけするスレになりそうだね、ここは。
53Name_Not_Found:2013/11/29(金) 00:43:29.47 ID:???
>>49
立てられなかった
誰か頼む
54Name_Not_Found:2013/11/29(金) 01:12:23.56 ID:???
「ボクのテンプレを改変したから別スレ立てるー」かw
低レベルだねえ
55Name_Not_Found:2013/11/29(金) 01:38:43.36 ID:???
便乗荒らしが出てきてるね
56Name_Not_Found:2013/11/29(金) 01:43:31.14 ID:???
jQueryでイベントの有無を確かめるいい方法はありませんか?
http://stackoverflow.com/questions/11612874/how-can-you-bind-an-event-handler-only-if-it-doesnt-already-exist
ここでは一旦外してもう一回付け直す、という方法を採っていますが
普通に有無を確かめてなければ付ける、ということをしたいです
57Name_Not_Found:2013/11/29(金) 01:52:36.15 ID:???
http://pastebin.com/Q7b7xSwB

$('body').click(function(){ alert('test' )})
var foo = $.data( $('body').get(0), 'events' ).click
// you can query $.data( object, 'events' ) and get an object back, then see what events are attached to it.

この方法も最早使えないようです
58Name_Not_Found:2013/11/29(金) 02:57:05.81 ID:???
>>56-57
jQueryのプライベートなプロパティ、$._dataから確かめるしかない
そうするとバージョンアップで動かなくなる可能性があるのでそういうプラグインを探すのを推奨する
あるいは諦めて他の方法をとる(独自にフラグ管理するなど)
59Name_Not_Found:2013/11/29(金) 04:52:09.05 ID:???
それだけのためにプラグインを使うのは抵抗があるので別のやり方しようと思います
ありがとうございました
60Name_Not_Found:2013/11/29(金) 04:53:13.77 ID:???
jQueryオブジェクトの変数名は慣習的に$hogeですが
jQueryオブジェクトの配列の変数名はどうしてますか?
61Name_Not_Found:2013/11/29(金) 08:15:05.61 ID:???
http://jsbin.com/uPimIYup/1/edit

二つのスクロール領域があります。
フォーカスを与えてキーを押すと、反応します。pageUpやスペースキーでスクロールします。当たり前ですが。
ですが、これをJavaScriptでやる方法が分かりません
keydownイベントの中で、
これらの部品に現在フォーカスがあるということを知るにはどうしたらいいのでしょうか?
activeElementに入っているかと思ったのですがbodyが入っていました
イベントオブジェクトにもそれらしいものが入っておらず、
完全にお手上げ状態です
よろしくお願いします
62Name_Not_Found:2013/11/29(金) 09:08:16.08 ID:???
>>60の件ですが、
hoge→hogeList
なので、
$hoge→$hogeList
にしました
ありがとうございました
63Name_Not_Found:2013/11/29(金) 15:10:36.05 ID:???
>>61
・$(document).on('keydown','#test,#test1',…)の形で受ける
・container/container1にtabindexを付加する
これで行けるかと
64Name_Not_Found:2013/11/29(金) 17:00:12.49 ID:???
出来ました!
webkitではtabindexを付けないとキーイベントが発生しなかったんですね
http://stackoverflow.com/questions/4791391/keyboard-scrolling-on-focused-div-in-webkit
これで念願の自前スクロールバーが完成しそうです\(^o^)/
ありがとうございました
65Name_Not_Found:2013/11/30(土) 03:47:49.94 ID:???
hoverすると要素の色を変更し、ドラッグ中もその色を保持したいです
しかし要素が細いので、ドラッグ中にカーソルがよく外れて、CSSがhoverじゃなくなってしまいます
ホバってない時もホバり用のCSSを明示的に適用するいい方法ありませんか?
ドラッグ用クラスを用意して、ドラッグ中はそのクラスを付けるという方法もありますが、
hoverとそのドラッグ用クラスに色指定がばらけるのは抵抗があります
66Name_Not_Found:2013/11/30(土) 04:04:57.83 ID:???
lessでいいだろ
67Name_Not_Found:2013/11/30(土) 12:13:31.12 ID:???
>>64
独立してスクロールしない事を嫌う人もいるから設定でon/offできるようにした方がいいと思うよ
68Name_Not_Found:2013/11/30(土) 13:09:27.02 ID:???
ありがとうございます
「独立してスクロールしない」とはどういう状態のことでしょうか?
わりと忠実にデフォルトのスクロールバーの機能を再現できたと思っているのですが・・
69Name_Not_Found:2013/11/30(土) 14:08:30.74 ID:???
http://rocha.la/jQuery-slimScroll
http://www.yuiazu.net/perfect-scrollbar/
自前スクロールバーとはこんな感じのものです
70Name_Not_Found:2013/12/01(日) 00:01:25.68 ID:???
keyupイベントをロギングしてみると、「1」のような単純な文字でも、
一回押すと4回イベントが発生していました。
常駐親指シフトソフトの「やまぶき」をオフにしたところ、現象がなくなったので、これが原因のようです。
3回の余計なキーコードは143で、
http://www.blogs.zeenor.com/tag/javascript-key-code-list
ここを見ると割り当てなしのようです
おそらく割り当てのないコードを使っているということでしょう
一回でいいところで4回も発生するとなると処理によってはパフォーマンスが気になります
デフォルトでマッピングされているキーコードかどうかを知るにはどうしたらいいでしょうか?
71Name_Not_Found:2013/12/01(日) 01:18:20.22 ID:???
>>70の件ですが、キーマッピングは複雑怪奇でテーブルを用意しても問題が出そうだったので、
コントロールのvalueのlengthをjQueryのdataに保存しておいて
それが前回と異なっていれば処理をする、という形にしました
ありがとうございました
72Name_Not_Found:2013/12/01(日) 11:38:00.55 ID:???
http://www.html5rocks.com/en/tutorials/file/dndfiles/
このページの上から4つ目のコードで質問なのですが、
for (var i = 0, f; f = files[i]; i++) {
このfor文の式1のfとは、何をしているのでしょうか?
(var i = 0,の直後のfです)
あってもなくてもエラーなく動作するのですが、何かを明示的に記述しているのでしょうか。
カンマで区切る意味はわかるのですが、変数だけを記述する意味がよく分かりません。
わかる方、よろしくお願いします。

一応コピーしてみました。
http://jsdo.it/testaeoflijwaelfija/azui
73Name_Not_Found:2013/12/01(日) 12:49:36.51 ID:???
>>72
宣言でしょ
var f; と同じ
74Name_Not_Found:2013/12/01(日) 13:29:29.58 ID:???
javascript 変数宣言 で調べればすぐ理解できるはず
75Name_Not_Found:2013/12/01(日) 13:40:08.88 ID:???
>>73,74
なるほど、ありがとうございました!
76Name_Not_Found:2013/12/02(月) 02:08:32.32 ID:myqRkEbt
preには都道府県名が入っております。
それを都道府県番号に変換するプログラムを下記のように作成しました。
例えば、preに「青森」が格納されていると、02の文字列が返されます。

配列は、もうちょっとスマートな書き方はあるでしょうか?
なんとなく[ ] 内の文字列が日本語だとよくない気がしたので。。。。

xx = new Array();
xx["北海道"] = "01";
xx["青森"] = "02";
xx["岩手"] = "03";
・・・・
number = xx[pre];

alert(number);
77Name_Not_Found:2013/12/02(月) 03:09:20.35 ID:???
arrayなのにキーが文字列なのはおかしいのでは?
78Name_Not_Found:2013/12/02(月) 03:18:04.19 ID:???
xx = {
'北海道':'01',
'青森':'02'
};

みたいな書き方にしたらすっきりしますよ
あと自分ならコードは01などの文字列でなく整数にするかな
79Name_Not_Found:2013/12/02(月) 07:27:35.84 ID:msVDbNxZ
HTML5未対応ブラウザでもJavaScriptを使ってNon-Blockingなマルチスレッド処理を行うことは出来ますか?
node.jsはJavaScriptなのにNon-Blockingのようですが、どうやっているのでしょうか?
80Name_Not_Found:2013/12/02(月) 08:04:18.53 ID:???
>>77-78
ありがとうございます
81Name_Not_Found:2013/12/02(月) 08:05:02.10 ID:???
<script type="text/javascript">
<!--
xx = {
'北海道':'01',
'青森':'02',
'岩手':'03'
};

test = "岩手";

hoge = xx[test];


alert(hoge);
// -->
</script>
82Name_Not_Found:2013/12/02(月) 10:40:07.63 ID:km9gttK9
JSONがよくわかってないのですが、質問です。

json.addr[1]には、「東京都」が入っており、

frm.hogehoge.value = json.addr[1];

とやると、フォーム内に「東京都」が入るのですが、

var pref = json.addr[1];

とやるとprefの中身が「undefined」になってしまいます。


prefに「東京都」が入り↓が有効になるにはどのようにしたらよいでしょうか?

frm.hogehoge.value = pref;
83Name_Not_Found:2013/12/02(月) 13:58:39.59 ID:???
>>82
現象を再現可能なコードを出してください
84Name_Not_Found:2013/12/02(月) 15:11:21.19 ID:???
>>82
jsonの問題じゃなくて、javascriptの変数のスコープが分かってないんだと思う。
85Name_Not_Found:2013/12/02(月) 19:05:55.50 ID:???
一体どういう現象なんだと首を捻っていたけどそれだ
片方はvarを付けてるからローカル変数になってるのか
86Name_Not_Found:2013/12/02(月) 19:52:25.61 ID:???
スコープもないならReferenceErrorになるのでは
87Name_Not_Found:2013/12/03(火) 13:34:15.62 ID:???
elm.addEventListener("click", function(){alert("hoge");}, false);
みたいな無名関数のイベントが既に登録(編集できない)されてて
そのイベントを後から削除するにはどうすればいいのでしょうか?
jQueryなどは使わずに特定の要素に付けられてるclickイベントを全て削除するとか
88Name_Not_Found:2013/12/03(火) 13:45:06.30 ID:???
>>87
無名関数は他から参照できないので削除できない
8987:2013/12/03(火) 14:12:54.74 ID:???
ありがとです。
要素を複製して新たに作ることにします。
90Name_Not_Found:2013/12/03(火) 15:57:39.23 ID:???
>>89
いや、素直に名前付き関数にすべきだと思うが
91Name_Not_Found:2013/12/03(火) 17:31:16.08 ID:???
arguments.calleeを使う方法もあるが非推奨らしいので
90の回答の通りにするべき
92Name_Not_Found:2013/12/03(火) 18:09:12.03 ID:???
既存の編集できない無名関数を名前付きに?
93Name_Not_Found:2013/12/03(火) 18:34:42.01 ID:jCULFmmu
PC内のライブラリパスの記述で質問です(XP,Firefox_25.0.1)

あるフォルダにある幾つかのライブラリを絶対参照するときに共通パスの簡便な
書き方はありますでしょうか? 例えば script タグ内で

src="C:/[ ** 共通 ** ]/abc.js" type="text/javascript"
src="C:/[ ** 共通 ** ]/あいう.js" type="text/javascript"
src="C:/[ ** 共通 ** ]/xyz012.js" type="text/javascript"

となったとき、共通部分が長いので 例えば string0 = [ ** 共通 ** ] として

src="C:/string0/abc.js" type="text/javascript" としたいです。
94Name_Not_Found:2013/12/03(火) 20:38:32.03 ID:???
>>92
なぜ編集できないのよ?
95Name_Not_Found:2013/12/03(火) 21:29:43.10 ID:???
他人が書いたライブラリの一部なんじゃね
96Name_Not_Found:2013/12/04(水) 01:56:09.41 ID:3hGvCiBX
初心者ですみません。

次のSELECTのNAME="colorlist"のOPTIONのvalueとテキストをすべて読み込んで、Arrayに入れる方法が分からないのですが、
どうやったらよいのでしょうか?


<SELECT NAME="colorlist">
<OPTION value="000">色を選んでください</OPTION>
<OPTION value="001">紫</OPTION>
<OPTION value="002">青</OPTION>
<OPTION value="003">水</OPTION>
<OPTION value="004">緑</OPTION>
<OPTION value="005">黄</OPTION>
<OPTION value="006">橙</OPTION>
<OPTION value="007">赤</OPTION>
</SELECT>
97Name_Not_Found:2013/12/04(水) 05:17:41.99 ID:???
テキストエリアの変更をリアルタイムに検知するのにkeyupやkeydownを使っていたのですが
コンテキストメニューからのペーストで反応しないことを発見しました
onchangeはフォーカスを外した時点でしか発生しないので使えません
どうすればいいと思いますか?
タイマーで1/60秒くらいのペースでチェックしまくるという泥臭い方法くらいしか思いつきません
98Name_Not_Found:2013/12/04(水) 05:34:14.39 ID:???
jsbinのエディタでもリアルタイム検知してますね
この感じだとやはりタイマーでチェックしてるのかな〜
99Name_Not_Found:2013/12/04(水) 08:43:29.07 ID:???
>>97
textinput だったかな
100Name_Not_Found:2013/12/04(水) 09:01:38.31 ID:???
そんなイベントがあったんですね
初耳です
ありがとうございました
101Name_Not_Found:2013/12/04(水) 09:40:04.27 ID:???
>>93

<script>
var path = 'C:/[ ** 共通 ** ]/';
var files = [
'abc.js',
'あいう.js',
'xyz012.js',
];
files.forEach(function (f) {
document.write('<script src="' + path + f + " type="text/javascript"></script>');
});
</script>
10293:2013/12/04(水) 11:03:38.02 ID:???
>>101
有難うございます。
ですが、その書式だとブラウザに '); });  が出るだけで何も実行されません。
どうしたものでしょうか?
103Name_Not_Found:2013/12/04(水) 11:37:28.21 ID:???
>>94
既に登録されてて編集できないって書いてるじゃん。
それを名前付きにすべきって言っても仕方ないだろ。
そもそもそこを考える質問じゃないと思うが…
何らかのサービス側の強制挿入orグリモンorブックマークレット等。
104Name_Not_Found:2013/12/04(水) 13:40:25.13 ID:???
>>102
ごめん <\/script> すればいけるかも
http://t32k.me/mol/log/dont-docwrite-scripts/
105Name_Not_Found:2013/12/04(水) 14:08:17.41 ID:???
いやこうか
document.write('<script src="' + path + f + '" type="text/javascript"><\/script>');
10693&102:2013/12/04(水) 18:03:05.49 ID:???
>>105
度々すいません。 '); });  は出なくなったのですが、今度は何も出ません。

試しにライブラリを集めたフォルダ(名前はABC)をHTMLファイルと同じディレクトリに
コピーして置いたとこと上記のお教え頂いた書式でOKでした。

相対パスはOKですが絶対パスはダメという状況です。 WindowsでのPC内絶対パスは
C:/Documents and Settings/デスクトップ/〜〜/ABC/ で良かったと思いますがブラウザ
利用の場合は書き方が違うのでしょうか?
10793&102:2013/12/04(水) 18:08:07.72 ID:???
(追記) パスの先頭に file:/// を付けてもダメでした。
108Name_Not_Found:2013/12/04(水) 18:31:42.56 ID:???
>>107
file:/// でいけるはずだけど空白は%20 とかにエンコードしなきゃダメ
ブラウザでファイル開いてURLコピーするのが手っ取り早いよ

こんなんね↓
file:///G:/My%20Documents/
10993&102:2013/12/04(水) 18:45:59.14 ID:???
>>108
ありがとうございます。
しかしながら、file:/// 付き,%付き共に何も現れずダメでした。
110Name_Not_Found:2013/12/04(水) 19:04:55.22 ID:???
以下のコードは、何がダメなのでしょうか。
$(document).ready(function()
で、変数aに1を代入、body部分でb+1のスクリプトを実行し、alert関数で表示しようと思っています。
var aの内容はずっと保持されず、消えてしまうのでしょうか?

また、消えてしまうなら他にいい方法はありますか?
現在、クリックを連打した回数が表示されるwebページを作っています。
これが表示されるとカッコワルイので隠そうと思うのですが、hiddenなどのパラメータに隠すのでしょうか?

<html><head><script src="http://code.jquery.com/jquery-2.0.3.min.js"></script><script type="text/javascript">
$(document).ready(function(){var a = 1;});</script>
</head><body>
<script type="text/javascript">
function x(b){
alert(b+1);
}
x(a);
</script></body></html>
111Name_Not_Found:2013/12/04(水) 20:28:21.94 ID:???
頑張ってトリッキーなことをやる→他のブラウザで確認してみる→挙動が全然違う→茫然自失
こういうことどうやれば回避できるんですか
112Name_Not_Found:2013/12/04(水) 20:38:51.17 ID:???
>>111
>>000 策定がトリッキーである
>>001 ブラウザがトリッキーな実装をする
>>110 がトリッキーなことをやる
>>111 で質問をする

ユーザー(クリエイター)は諦めて、 >>001の時点に従うのが正解と思うんだ。
そして、信じよう
113Name_Not_Found:2013/12/04(水) 20:52:21.74 ID:???
なんで二進数なんですか
114Name_Not_Found:2013/12/04(水) 20:52:59.47 ID:???
特に意味はありません。
115Name_Not_Found:2013/12/04(水) 21:06:53.68 ID:???
>>110
var a を外側で宣言すればいいよ
116Name_Not_Found:2013/12/04(水) 21:12:13.89 ID:???
>>115
うおおおありがとうございます!これでいけました
<html><head><script src="http://code.jquery.com/jquery-2.0.3.min.js"></script><script type="text/javascript">
var a = 5</script>
</head><body>
<script type="text/javascript">
function x(b){
alert(b+1);
}
x(a);
</script><body></html>
117Name_Not_Found:2013/12/04(水) 21:17:44.03 ID:g2F9Fthd
すみません
どなたか教えて頂けないでしょうか
Androidでonclickが使用できなくて困っています
iPhoneとPCでは問題なくいけるのですがAndroidだと
反応がありません

<form method="POST" action="XXXX" name="menu">
<ul>
<li><a href="javascript:void(0);" onclick="document.menu;aaa.value='X_2';submit();return false;">aaa</a></li>
<li><a href="javascript:void(0);" onclick="document.menu;aaa.value='X_1';submit();return false;">aaa</a></li>
</ul>
<input type="hidden" name="aaa" value="X_2">
</form>
118Name_Not_Found:2013/12/04(水) 23:30:28.18 ID:???
>>117
hrefにjavascript:で始まるものを使ったらダメ。
onclickやonなんとかって属性を使ったらダメ

この2点を守れば出来るよ
119Name_Not_Found:2013/12/05(木) 01:41:31.71 ID:oWbHyf8o
現在jqueryで下記のように組んでるのですが、jqueryなどのライブラリを使わないことになりました。
「TEAMLIST」のテキストとVALUE値を配列に入れたいのですが、下記をどのように変えたらよいでしょうか?

<script type="text/javascript">
var teamname = new Array();
var teamnumber = new Array();

function shori(){
var i = 0;
$("select[name='TEAMLIST'] option").each(function(){
teamname[i] = $(this).text();
teamnumber[i] = $(this).val();
i++;
});
}

</script>


<FORM NAME="HOGE">
<SELECT NAME="TEAMLIST">
<OPTION VALUE="-1">好きな球団を選んでください</OPTION>
<OPTION VALUE="01">巨人</OPTION>
<OPTION VALUE="02">阪神</OPTION>
<OPTION VALUE="03">広島</OPTION>
<OPTION VALUE="04">中日</OPTION>
<OPTION VALUE="05">横浜</OPTION>
<OPTION VALUE="06">ヤクルト</OPTION>
</SELECT>
</FORM>
120Name_Not_Found:2013/12/05(木) 03:16:38.59 ID:???
関数にデフォルトの引数を設定したい場合

function myfunc(a) {
if (typeof a == 'undefined') {
a = 'デフォルトの値';
}
}

のようにすることがあると思うのですが
グローバル変数を上書きしてしまわないためには

function myfunc(a) {
if (typeof a == 'undefined') {
var a = 'デフォルトの値';
}
}

とする必要があるのですか?
121Name_Not_Found:2013/12/05(木) 04:24:27.03 ID:???
>>120
引数は関数ローカルな変数なので上でいい
下はaを二重定義することになるのでよくない
122Name_Not_Found:2013/12/05(木) 07:16:05.72 ID:???
a = a || デフォ値;

これおすすめ
123Name_Not_Found:2013/12/05(木) 12:49:54.14 ID:KgfXfhlU
>>118さん
ありがとうございます
無事androidで挙動を確認できました!
124Name_Not_Found:2013/12/05(木) 13:19:05.21 ID:???
>>122
横からだが参考になった
125Name_Not_Found:2013/12/05(木) 14:22:04.08 ID:???
>>122
a = a | デフォ値;
これも時々見るけど何が違うの?
126Name_Not_Found:2013/12/05(木) 14:43:55.80 ID:???
firefoxってoffsetX/Yないのか
なんというファッキンブラウザだ
127Name_Not_Found:2013/12/05(木) 14:45:08.55 ID:???
いやないならないでjQueryの方で何とかしてくれって話だな
何のためのjQueryだよ
128Name_Not_Found:2013/12/05(木) 15:40:41.98 ID:???
指定したキーが、オブジェクト内に複数もしくは一つだけ存在する場合、
対応したキーと値の全てを配列かオブジェクトとして変換したいのですが、どうすればよいでしょうか?

複数の場合、もしくは一つの場合、そのどちらかという条件であればすぐ思いついたのですが、
両方を満たす処理だとうまく出来ません。お願いいたします。
なお、jQuery等は使用できる環境です。

※指定キー「test」で抽出するとする。
・複数キーがある場合
var obj = {
0: {test: 'hoge01', result: 'huge01'},
1: {test: 'hoge02', result: 'huge02'}
};
配列として変換 ⇒ ['hoge01', 'hoge02']
オブジェクトとして変換 ⇒ {0: 'hoge01', 1: 'hoge02'}

・一つだけキーがある場合
var obj = {test: 'hoge01', result: 'huge01'};
配列として変換 ⇒ ['hoge01']
オブジェクトとして変換 ⇒ {0: 'hoge01'}
129Name_Not_Found:2013/12/05(木) 15:52:51.09 ID:???
>>125
書き間違いじゃなきゃビットフラグかな
http://promamo.com/?p=999
130Name_Not_Found:2013/12/05(木) 20:32:44.97 ID:???
http://ideone.com/MrLFap

25行目のaddEventListenerがIE8以下に対応していないので
attachEvent('onclick を使いたいのですが
どう記述したらいいのかわかりません

http://luminosite-jwell.blogspot.jp/2012/04/documentaddeventlistenerjavascript.html
を参考にやってみたんですがエラーになります
131Name_Not_Found:2013/12/05(木) 21:59:53.28 ID:FgxXGuK6
WebProg版がずっとスレが無い状態なんですが、何かあったんですか?
132Name_Not_Found:2013/12/05(木) 22:00:40.67 ID:FgxXGuK6
誤爆です
133Name_Not_Found:2013/12/05(木) 22:27:45.01 ID:7T06unzX
http://www.buildinsider.net/web/bookjslib111/111
テスト導入しようとこの通りにやってみたんだけど、そのままやってるのに
「FizzBuzzの異常テスト: 引数指定なしで例外発生」が通らない。
ArgumentNullException is not definedと出ます。
ぐぐってもJavaScriptでこんなエラーが出る例はないようです。
何がおかしいんでしょうか?
環境はWindows7のChromeです。
134Name_Not_Found:2013/12/05(木) 22:34:57.82 ID:7T06unzX
コピペミスだった
自決しますた
135Name_Not_Found:2013/12/05(木) 23:14:27.28 ID:???
>>134
いのちをだいじに
136Name_Not_Found:2013/12/06(金) 17:02:35.77 ID:???
>>130
if elseでattachEventを実行させるんだと思うけど
どうやって書いたらいいかは俺はわからない
137Name_Not_Found:2013/12/06(金) 19:10:22.34 ID:9iSNeVmW
if(window.addEventListener) hoge.addEventListener();
else hoge.attachEvent();

ではいかんの?
138Name_Not_Found:2013/12/06(金) 19:12:48.45 ID:6ZCVCCoh
タッチイベントで位置の取得をしたいのですが
Androidで「Right」しか認識できず困っています。
iPhone、PCでは問題なかったのですが
下記の書き方ではいけないのでしょうか?
他に良い書き方があれば教えて頂けないでしょうか?

var direction = 'unknown';
var xDis = Math.abs(x1 - x2);
var yDis = Math.abs(y1 - y2);//x,y座標の差の絶対値を取得
if (xDis >= yDis) {
direction = (x1 - x2 > 0 ? 'Left' : 'Right');
} else {
direction = (y1 - y2 > 0 ? 'Up' : 'Down');
}
139Name_Not_Found:2013/12/06(金) 19:42:34.56 ID:???
addEventListener('load', function(){ var _=0;
ってなってるんだけど

if(addEventListener){
addEventListener('load', function(){ var _=0;
} else {
attachEvent('onclick', function(){ var _=0;
これじゃだめでしょ?

どーしたらいいの?
140Name_Not_Found:2013/12/06(金) 22:02:40.84 ID:???
>>139
typeof演算子
attachEventも同様にtypeof
141Name_Not_Found:2013/12/06(金) 22:17:29.60 ID:SwJ1eAdV
>>139
なぜ片方はクリックなん?

それはさておき、イベントリスナは同じもの使えばいいじゃない
142Name_Not_Found:2013/12/07(土) 00:37:14.26 ID:???
クラウド上でアプリ作成するMonacaって、みなさまでやってる人いますか?
javascriptでアンドロイドアプリ作成できるそうなのですが、
流行そうなサービスなんでしょうか?
143Name_Not_Found:2013/12/07(土) 07:04:42.08 ID:???
ローカル変数を全部ログに出力する方法ありますか?
144Name_Not_Found:2013/12/07(土) 21:08:26.96 ID:???
JavaScriptのデバックにchromeのデベロッパーツールを使っているのですが、
<a>や<form>で_blankにより新しい窓(タブ)で開いた場合、手動でShift+Ctrl+Iを押さないとデベロッパーツールが表示されず困っています
みなさんこういう場合はどのようにしていますか?
145Name_Not_Found:2013/12/07(土) 22:43:23.22 ID:???
よく分からないけど新しく開いたウインドウ(タブ)でデベロッパーツールが開いてないのは当たり前では
そのウインドウ用のツール開くのじゃあかんの?
146Name_Not_Found:2013/12/08(日) 03:16:08.89 ID:???
box-sizingがborder-boxの時も
firefoxではscrollHeightがcontent-boxの時と変わりません
chromeでは変わります
firefoxの時でも正しい値を得る方法ありませんか?
147Name_Not_Found:2013/12/08(日) 03:57:52.59 ID:???
scrollTop+clientHeight
で算出したらいいのでは?と思ったのですが、clientHeightもおかしな値が入ってました
148Name_Not_Found:2013/12/08(日) 12:18:24.60 ID:???
>>146-147
Gecko は box-sizing をフルサポートしていない為、box-sizing では指定できない
https://developer.mozilla.org/ja/docs/Web/CSS/box-sizing
149Name_Not_Found:2013/12/08(日) 17:56:19.66 ID:???
まだ完全ではないんですね
外部divのサイズにpadding以下がぴったり入った、
border-box状態の要素を
content-boxで実現するにはどうしたらいいのでしょうか
bottomやrightを0にするやり方だと
中がtextareaの時、chrome以外でははみ出ます
150Name_Not_Found:2013/12/08(日) 18:20:43.07 ID:IbWEO0i4
javascriptでFlashのようなアニメーションを作成したいのですが、
効率の良い作成方法ご存知の方いらっしゃいますか?
またどのような環境で制作していますか?
ソースを綺麗にかく良い方法があれば教えて頂けないでしょうか
151Name_Not_Found:2013/12/08(日) 22:53:17.09 ID:???
>>150
html5 ゲームととりあえずググれ
アニメのグラフィック表現なら、html5で実装されたAPI使って
やりたいって認識でいい?
152Name_Not_Found:2013/12/09(月) 00:17:45.90 ID:6cjcAra7
スマートフォンに対応するものを作成したいです
なので軽量化されたものがいいです
153Name_Not_Found:2013/12/09(月) 09:02:16.53 ID:???
要素をまたいだ文字列の検索と、そのハイライトや置換って
http://note.chiebukuro.yahoo.co.jp/detail/n32410
みたいな方法になるんですか?もっと簡単な方法はありませんか
154Name_Not_Found:2013/12/09(月) 11:53:26.30 ID:???
ブックマークレットで質問です。
最初にinputboxを出し、それを変数に入れて実行したいのですがどうすればよいでしょうか?

最終的にやりたいことは、ツイートbotのサイト
http://twittbot.net/
で登録した物を一気に消したいのです
登録したものの削除ボタンが以下のようになっていたので
<td><input value="削除" onclick="javascript:delete_serif(12345678)" type="button"></td>

javascript:var a=12345678;for(var i=0 ; i<=100 ; i++){delete_serif(a+i);}
こんな感じで100個一度に消すブックマークレットを作りました。

ただしこれだと「12345678」の部分をブックマークレット自体を編集しなければならないので、
もっと手軽にしたいと思ったのです。

要するに
javascript:delete_serif(12345678)
の引数を数値を増やして実行、を繰り返したいのです。

他の方法でも構いません、なにか方法があればお願いします。
155Name_Not_Found:2013/12/09(月) 12:54:18.02 ID:???
>>154
prompt() 使うとできるよ
156Name_Not_Found:2013/12/09(月) 13:07:02.49 ID:???
>>155
ありがとうございます!
javascript:var a=window.prompt("最初の数値を入れてOK","");a=parseInt(a);for(var i=0 ; i<=100 ; i++){delete_serif(a+i);alert(a+i)}
でできました。

戻り値が文字列になったので型キャスト必要になりました。
157Name_Not_Found:2013/12/09(月) 22:34:22.13 ID:???
>>153
そこまで丁寧に実装されているコードは珍しいんですがねえ。
短いコードは例外処理がいまいち名ことが多いので必ずしも短ければ良いわけではないですよ。

Rangeを使用しないならspan要素で括る実装が考えられます。
要素の親子関係には引きずられるのでRangeよりは制約が生まれますね。
158Name_Not_Found:2013/12/10(火) 03:07:28.19 ID:???
スクロールバーを除いたwidthやheightを取得するにはどうやればいいですか?
159Name_Not_Found:2013/12/10(火) 03:08:21.02 ID:???
http://jdsharp.us/jQuery/minute/calculate-scrollbar-width.php

これが参考になるかと思ったのですが、もう古いのか、chromeではゼロになります
160Name_Not_Found:2013/12/10(火) 03:43:38.56 ID:???
getBoundingClientRectで座標を取得し
右下の座標からelementFromPointすると、
その要素になりません。
左上の座標ならその要素になります。
これは何故でしょうか?
検証コードはこれです
http://jsbin.com/alatuZIg/1/edit
161Name_Not_Found:2013/12/10(火) 04:05:58.35 ID:???
>>160
その辺りは実装依存と見なすべきだろう

dev.w3.org/csswg/cssom-view/#dom-document-elementfrompoint

If there is a layout box in the viewport that would be a target for hit testing at coordinates x,y, ...

に hit testing という句が現れているが、その後の方の注意書きに

The specifics of hit testing are out of scope of this specification and ...
( hit testing の実際は仕様の範囲外)と書かれている
162Name_Not_Found:2013/12/10(火) 11:34:21.36 ID:???
>>158-159
> スクロールバーを除いたwidthやheightを取得するにはどうやればいいですか?
https://developer.mozilla.org/ja/docs/DOM/element.clientHeight
163Name_Not_Found:2013/12/10(火) 12:14:36.42 ID:???
javascriptで、内部クラスから外部クラスのthisを参照する方法はありますか?
javaだと、外部クラス.this.プロパティでアクセスできるみたいですが・・・
164Name_Not_Found:2013/12/10(火) 12:22:58.53 ID:???
>>163
javascriptにはクラスという概念はないぜ
165Name_Not_Found:2013/12/10(火) 12:29:56.64 ID:???
>>163
オブジェクトが参照できるのなら、
それがそのオブジェクトにとってのthisでしょ。
166Name_Not_Found:2013/12/10(火) 12:34:55.77 ID:???
>>163
thisは自インスタンスだから、
「クラス.this.プロパティ」っていう文法は何か変じゃないか?
クラスのプロパティなら「クラス.プロパティ」だし、
インスタンス変数なら「オブジェクト.プロパティ」になる筈。
なぜthisが入る?
167Name_Not_Found:2013/12/10(火) 12:57:45.51 ID:RP1G1DIv
var obj = {
a : hoge,
b : { c : function(){ ここ } }
}

「ここ」からaを参照するって話でないかい?
168Name_Not_Found:2013/12/10(火) 14:22:56.72 ID:???
クラスの概念は無いというのは知っていたのですが、盛大に勘違いしている気がしました・・・。
一応してみたかった事を書いてみます。
var Outer = (function(){
 function Outer(){
  this.a = 0;  // <- ココ
 }
 Outer.prototype.hoge = function(){};

 var Inner = new (function(){
  function Inner(){
   this.a = 0;
  }
  Inner.prototype.hoge = function(){/* Outerのthisを参照 */};
  return Inner;
 )}();
 return Outer;
})();
169Name_Not_Found:2013/12/10(火) 15:47:07.38 ID:???
100個以内のリンク収集でもっとも高速なのって以下の中ならどれですか?
document.links
document.getElementByTagName("a")
XPath
170Name_Not_Found:2013/12/10(火) 15:54:49.35 ID:14i9s7/U
171Name_Not_Found:2013/12/10(火) 16:05:52.11 ID:???
0.34567→0.35
22.8721→22.87
1.999→2
といった具合の数字を得るにはどうしたらいいでしょうか?
単純に小数点から2つあとの数字以降をカットだと繰り上がらないし
一番下のケースなんかにはいいのですがroundとかを使うとバッサリすぎます
172Name_Not_Found:2013/12/10(火) 16:11:16.00 ID:???
>>169
環境によって違うから自分で試したほうが確実。
リンク収集なんて高速にしても一緒なので書くのが楽なやつでいい。
>>170
せめてちょっとぐらいはコード書け
>>171
Math.round()
でできるはずだけど、何があった
173171:2013/12/10(火) 16:15:31.49 ID:???
>>172
レスありがとうございます
Math.round(0.34567);
これは0になってしまうのですが使い方間違ってますか?
174Name_Not_Found:2013/12/10(火) 16:23:49.85 ID:???
おうようりょく
175Name_Not_Found:2013/12/10(火) 16:30:18.35 ID:???
小数点の位置を以下略
176Name_Not_Found:2013/12/10(火) 16:32:30.57 ID:???
>>173
round js辺りでぐぐって。
round(3.456,2)みたいなものは、無い。
何で無いのかは知らん。
177171:2013/12/10(火) 16:39:48.28 ID:???
>>176
ありがとうございます
ぐぐってきます
178Name_Not_Found:2013/12/10(火) 17:28:01.47 ID:???
window.removeEventListenerの使いどころがよくわからないのですが、
GC目的でこんな感じの記述ってのは無意味でしょうか?
window.addEventListner('load', func, false);
window.removeEventListener('unload', func, false);
179Name_Not_Found:2013/12/10(火) 17:34:24.75 ID:???
>>178
unloadのタイミングで実行するなら意味がある
180Name_Not_Found:2013/12/10(火) 17:43:15.53 ID:???
>>179
ありがとうございます。
自信がなかったのですが、一応この記述を加えることにします。
181Name_Not_Found:2013/12/10(火) 19:26:14.35 ID:io8/bsOh
すいません、長くなりますが質問です。以下のサイトの
http://rest-term.com/archives/2991/
https://github.com/wellflat/javascript-labs/blob/master/cv/fisheye.js
このJSファイルがうまく使えません。

やりたいことは、
canvas(id="c1")内に ./image2.gif を読み込みます。
その画像をFisheye.transform(imagedata,x,y)に投げて画像の処理をさせます。
imagedataが返って来ますので、元画像に重ねてcanvasに書きたいという事です。
サンプルサイトでは
http://rest-term.com/labs/html5/fisheye.html
と周りをぼかす、上下反転などがありますが、本来やりたいのはこういった感じです。
http://or2.mobi/data/img/66559.png

以下のコードでは
http://or2.mobi/data/img/66560.png
こうなってしまいます。(サンドバッグ画像に他意はありません)
ctx.putImageData(result,100,100)で指定した100,100の範囲内が真っ白になってしまいます。
resultはimagedataで、それを元画像に上書きすると思うのですが、何が悪いのかが、どうしても分かりませんでした。

1週間ぐらい頑張ってようやく下記のコードまで来ましたが、ダメでした。
頑張って良いサイトを作りたいと思っています。是非お力を貸して下さい。
182181の続きです:2013/12/10(火) 19:26:47.44 ID:io8/bsOh
必要なファイルは、以下の2つです。image2.gifは画像ファイルならなんでもいいと思います。
./fisheye.js
./image2.gif
<!DOCTYPE html><html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="http://code.jquery.com/jquery-2.0.3.min.js"></script>
<script src="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.js"></script>
<script type="text/javascript" src="./fisheye.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var canvas =document.getElementById('c1');
var ctx = canvas.getContext('2d');
var image = new Image();
image.src="./image2.gif";
image.onload = function(){
document.getElementById('c1').width=image.width;
document.getElementById('c1').height=image.height;
ctx.drawImage(image, 0, 0,image.width,image.height);
var result = Fisheye.transform(ctx.getImageData(50,50,100,100), 55, 80);
ctx.putImageData(result,100,100);
}
});
</script>
</head>
<body>
<canvas id="c1" width="300" height="300" style="border:1px solid #ccc"></canvas>
</body></html>
183Name_Not_Found:2013/12/10(火) 19:29:35.42 ID:uSsrAPW/
>>173
0.34567 × 100 / 100
184Name_Not_Found:2013/12/10(火) 19:59:11.61 ID:???
>>183
やり直し
185Name_Not_Found:2013/12/10(火) 20:06:24.76 ID:???
>>162
こんな簡単にできたんですか
ありがとうございました
186Name_Not_Found:2013/12/10(火) 20:37:26.61 ID:DMWdfe4I
>>184
いやまあ考え方なんで
不動小数点の丸め誤差が気になるならビットシフトでもすればいいじゃない
187Name_Not_Found:2013/12/10(火) 20:57:11.46 ID:???
とりあえず171の要件を見たらどうなんだ
188Name_Not_Found:2013/12/10(火) 23:22:45.99 ID:???
>>166
Javaの内部クラスに関連してそういう構文が必要になったんだよ。
Javaの内部クラスを知らないのに突っ込もうとかしない方がいいんでは。
189Name_Not_Found:2013/12/11(水) 06:40:14.15 ID:???
クリッカブルな要素をbutton要素にする必要ってありますか?
divでいいですよね?
190Name_Not_Found:2013/12/11(水) 08:38:41.37 ID:???
出っ張った見え方とかクリックしたときにへこむ変化とかそういうフィードバックも
全部自前でやるのならいいんじゃないの。
191Name_Not_Found:2013/12/11(水) 10:49:00.76 ID:???
>>189
JavaScript無効でクリックできなくなる
192Name_Not_Found:2013/12/11(水) 11:28:07.00 ID:???
なんでdiv?
193Name_Not_Found:2013/12/11(水) 18:15:16.46 ID:???
じゃあ何がいいんだ?
汎用的なブロック要素はだいたいdivだろ
194Name_Not_Found:2013/12/11(水) 18:45:39.92 ID:???
buttonでいいんじゃない
195Name_Not_Found:2013/12/11(水) 18:47:21.50 ID:4xH4B9DV
buttonはcss的な意味で加工が面倒なので
spanを使うことが多いなあ
196Name_Not_Found:2013/12/11(水) 19:07:26.00 ID:EbjxgEv3
>>181-182
は無理でしょうか・・・
197Name_Not_Found:2013/12/11(水) 19:55:09.33 ID:???
spanを使うのはインラインで使いたい時だろ?
ブロックならdiv、インラインならspan
198Name_Not_Found:2013/12/11(水) 22:42:24.64 ID:aze+4oXB
ボタンなんかはinline-blockにすることが多いっすね
本来のbutton要素もそうだし

うまく書けないんだけど
ボックスの中に収まる物はブロックじゃない感じがします
199Name_Not_Found:2013/12/11(水) 23:23:54.38 ID:???
ブックマークレットで
javascript:location.href='URL';
これをNms間隔でM回繰り返すにはどうすればいいのでしょうか?
200Name_Not_Found:2013/12/11(水) 23:42:16.53 ID:???
javascriptパターンと
javascriptデザインパターンって書籍がありますが、
どうちがうのでしょうか?
買うならどっちでしょうか?教えてください
201Name_Not_Found:2013/12/12(木) 01:03:46.23 ID:???
>>200
目的によってお勧めは異なる
202Name_Not_Found:2013/12/12(木) 01:08:40.14 ID:???
>>196

>>182みたいな長ったらしいものは、まず短くしたくなるわw
俺がやるのは短くするだけな。

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <script src="http://code.jquery.com/jquery-2.0.3.min.js"></script>
  <script src="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.js"></script>
  <script src="./fisheye.js"></script>
  <script>
    $(function(){
      var canvas = $('#c1')[0], ctx = canvas.getContext('2d');
      $('<image>').attr('src', './image2.gif').on('load', function() {
        $(canvas).css({width: this.width, height: this.height});
        ctx.drawImage(this, 0, 0, this.width, this.height);
        var result = Fisheye.transform(ctx.getImageData(50, 50, 100, 100), 55, 80);
        ctx.putImageData(result, 100, 100);
      });
    });
  </script>
</head>
<body>
  <canvas id="c1" width="300" height="300" style="border:1px solid #ccc"></canvas>
</body>
</html>
203Name_Not_Found:2013/12/12(木) 01:14:52.10 ID:???
>>200
> javascriptパターンと
> javascriptデザインパターンって書籍がありますが、
> どうちがうのでしょうか?
> 買うならどっちでしょうか?教えてください

質問を二つに分けよう。

Q1. JavaScriptパターンを買うべきでしょうか?
Q2. JavaScriptデザインパターンを買うべきでしょうか?

A1.
JavaScript初心者なら買うべき。
他の言語は知っているが、JavaScriptは知らないというのなら買うべき。
JavaScriptでの良い書き方を知らないなら買うべき
JavaScriptバリバリ使えるぜ。モダンな書き方を知ってるぜ。という人なら不要

A2.
JavaScript初心者なら買うべき。
デザインパターンを知らないなら買うべき。
デザインパターンは知っているが、JavaScriptでどう書くのか悩んでる人は買うべき
JavaScriptバリバリ使えるぜ。JavaScriptでデザインパターンをなんの苦労もなくかけるぜ。という人なら不要


つまりJavaScript初心者なら両方買うべき。
204Name_Not_Found:2013/12/12(木) 04:54:44.28 ID:???
JavaScriptでデザパタ使うことある?
そりゃ知らないより知ってた方がいいけど
205Name_Not_Found:2013/12/12(木) 12:33:59.25 ID:???
three.js使ってる人いないかな
206200:2013/12/12(木) 12:40:42.16 ID:???
自分のレベルは、非同期のファイルアップローダを
phpとmysqlとjavascriptとhtml5を使い作れる程度です。
両方買ってみます。goodpartsで勉強している途中です。
var MYAPP = MYAPP || {};
などの名前空間使ったjsのコードってほとんど読んだことないのですが、
何か、いいサンプルやライブラリなどはありますでしょうか?
207Name_Not_Found:2013/12/12(木) 15:26:27.39 ID:wSgKvWjd
>>202
ありがとうございます
結局そのjsの使い方がわからなかったので、内部の計算を取り出して自分で実装しました。
大変悲しかったです。
208Name_Not_Found:2013/12/12(木) 15:29:29.43 ID:???
ワロタw
209Name_Not_Found:2013/12/12(木) 15:36:53.95 ID:iJuV8DeG
>>206
読んでみれば大したことではないとわかるよ、そんなもん
210Name_Not_Found:2013/12/12(木) 20:29:56.77 ID:???
Threeって自分でシェーダ書けるん?
211Name_Not_Found:2013/12/12(木) 21:54:28.31 ID:???
WinからMacに移行したんでつい最近Coda2購入したんですが
普段仕事では.NET開発ばかりなんでVSばかり使ってまして
Coda2のJavaScriptの補完が糞すぎて辛いです
VS並みの優秀な補完を備えたWeb/LL用IDEないですかね?
212Name_Not_Found:2013/12/12(木) 23:42:16.48 ID:tEyfQVTd
現在下記のようなラジオボックスがあり、value「読込」ボタンを押すとgetdata()が読み込まれる仕組みになっています。

<input type="radio" name="hoge" value="saitama">埼玉
<input type="radio" name="hoge" value="tokyo">東京
<input type="radio" name="hoge" value="kanagawa">神奈川
<input type="button" value="読込" onClick="javascript:getdata();">

例えば「神奈川」(kanagawa)にチェックを入れた状態で「読込」を押すと神奈川の情報が読み込まれます。
これをラジオボタンのチェックを移動させるたびに読み込みなおすようにするにはどのようにしたらよいでしょうか?
213Name_Not_Found:2013/12/13(金) 01:06:30.42 ID:???
>>212
JavaScriptの基礎を勉強すればいいんじゃないかな?
214Name_Not_Found:2013/12/13(金) 03:02:07.64 ID:???
表示はするがイベントには反応しない要素なんて作れますか?
半透明で表示するけど、マウスは下に突き抜けて欲しいのです
215Name_Not_Found:2013/12/13(金) 07:45:24.38 ID:XAKFmdlP
>>212
ボタンを押したら発火、と思ってるのを
ボタンのクリックイベントが発生したら発火、と考えるようにしよう

んで、イベントはボタンに限らず全ての要素で起こるんだ
216Name_Not_Found:2013/12/13(金) 07:53:59.10 ID:g7KJcXTO
>>214
できるよ
217Name_Not_Found:2013/12/13(金) 12:45:58.20 ID:???
http://jsbin.com/isiBIZa/1/edit
マウスイベントが下に突き抜けるってこういうのだよね?
親子関係にない要素同士の重なっている部分をクリックすると覆われている側にクリックイベントが伝わるみたいな
218Name_Not_Found:2013/12/13(金) 15:07:09.69 ID:???
そうです
219Name_Not_Found:2013/12/13(金) 15:16:41.99 ID:???
カーソルの形も下の要素に反応させたいです
220Name_Not_Found:2013/12/13(金) 15:21:00.61 ID:viuyBcWL
20歳の子たちに教えることになって
昔ながらだが、壁でボールが反射するのを作ることにしたんだが
角度の単位のラジアンを知らなくてびっくりした

スレ違いすんません
221Name_Not_Found:2013/12/13(金) 19:41:38.45 ID:???
入力チェック程度の処理で各画面ごとのjsファイルを作る場合、
関数宣言はどのようにするのが良いですか?

1. function test() {};

2. var hoge = { test: function() {} };

3. var hoge = (function() { var test = function() {}; return {test: test}; }());

1だとグローバル関数になり、3だと処理内容によってはメモリリークになる場合があるかもしれないので
2が良いのでしょうか?
222Name_Not_Found:2013/12/13(金) 22:19:18.04 ID:3hXYM/Ad
グローバルに何か置く必要あるん?
223Name_Not_Found:2013/12/13(金) 22:59:57.04 ID:???
引数はローカル変数なんですか?
function hoge(hikisuu){
var aaa = hikisuu;
}
という記述は無意味?
224Name_Not_Found:2013/12/14(土) 02:37:44.22 ID:???
>>221
どのようにするのがいいかだって?

じゃあ、いい方法を教えてあげよう。

まず、今の時代ではタグにonclickみたいなの書いたはいけないのは知ってるね。
少なくともスクリプトファイルは外部のjsファイルに分離する。

やり方は色いろあるかけど、とりあえずjQueryを使おう。
$(function() {・・・})に全て書いてしまえば、
jQueryオブジェクト($)以外はグローバルにしなくて済む。

入力チェック程度で各画面にjsを作るのは、開発時はいいけれど
ユーザー側から見れば小さいjsファイルに何度もアクセスすることになって
パフォーマンスが悪い。だからjsファイルを一つに結合するべきだね。
これもやりかたはいくつかあるけど、requirejsのr.jsなんか結構使われてるね。

requirejsを使えば、require(function() {・・・})やdefine(function() {・・・})に
すべての処理を書いてしまえば、jQueryと同じようにグローバルなオブジェクトは最小限になる。

requirejsだけでもいいが、入力チェックするならDOMにアクセスするだろうから
jQueryもどうせ使うだろうね。jsファイルが沢山になるけど、とりあえずjQueryでも使ってみたら?

これらを使わずに自力でやりたい? この程度でどう書くのか悩んでるレベルなら
自力でやる力がないということだから、やらないほうがいいよ。素直にjQuery使って力をつけなさい。
jQueryと同等の別の何かでもいいけどマイナーか難しいからおすすめしない。
225Name_Not_Found:2013/12/14(土) 21:31:34.41 ID:???
>>224
ありがとうございます。
ずっとタグにonclick書いてました。
226Name_Not_Found:2013/12/15(日) 09:46:04.71 ID:???
> まず、今の時代ではタグにonclickみたいなの書いたはいけないのは知ってるね。
タグにイベントハンドラを書いてはいけないって誰が言ったの?あまり推奨しないだけじゃね?
個人的主観をかも当たり前のように押し付けるのはどうかと。
227Name_Not_Found:2013/12/15(日) 11:34:19.35 ID:???
>>226
言葉足らずではあるが、役割を分離した方が良いとはよく言われる
CSSを外部ファイル化するのと同じ
ただ、MUSTは言い過ぎでSHOULDに留める程度だと思うが
228Name_Not_Found:2013/12/15(日) 12:25:55.98 ID:???
<=や>=といった演算子を変数に入れることできますか?
229Name_Not_Found:2013/12/15(日) 13:24:06.88 ID:???
演算子はオブジェクトじゃないから無理。
230Name_Not_Found:2013/12/15(日) 15:01:59.09 ID:???
>>228
new Function を使うのであれば可能
231Name_Not_Found:2013/12/16(月) 17:48:29.15 ID:???
循環参照をチェックできるオンラインツールってありませんか?
232Name_Not_Found:2013/12/16(月) 23:44:32.65 ID:???
ほんと>>231みたいに技術者じゃない人が
JavaScriptさわらなきゃいけないのって
可愛そうだと思うw
233Name_Not_Found:2013/12/17(火) 00:45:18.52 ID:???
上からくんがおるな
234Name_Not_Found:2013/12/17(火) 01:10:37.02 ID:???
遙かなる高みからくんですよ?
235Name_Not_Found:2013/12/17(火) 01:41:44.97 ID:???
カーソル変更用のレイヤを画面全体に張ると
イベントが下に伝わらなくなりますが
どうすればいいですか
236Name_Not_Found:2013/12/17(火) 01:54:35.12 ID:???
一瞬消してdocument.elementFromPointで下の要素を検出して投げ直せばいいかと思ったのですが
カーソル変更用なので消した時にカーソルも変わってチラチラしそうです
237Name_Not_Found:2013/12/17(火) 02:01:04.05 ID:???
普通に考えたら、そのカーソル変更用のレイヤーとか
いう変なのをやめたらいいと思います。
238Name_Not_Found:2013/12/17(火) 02:05:40.48 ID:???
じゃあどうやってカーソルを変更すればいいんですか?
指定のカーソルになっていてほしい操作があるんです
直接カーソルを変更できればいいのですが、それが出来ないので仕方なくそうしています
239Name_Not_Found:2013/12/17(火) 21:28:55.00 ID:???
マウスカーソルといえば9801使ってた頃は自分でマウスドライバー作ってたな。
ハードウェア割り込みを取得してビデオRAMとカーソル画像をXORしてとか。
スプライトいっても今の人は飲み物しか浮かばないんだろうなぁ。
240Name_Not_Found:2013/12/17(火) 21:30:06.32 ID:???
画面がチラつかないように、CRTのリフレッシュに同期して書き換えたりとか。
241Name_Not_Found:2013/12/17(火) 22:21:34.83 ID:???
>>239
> スプライトいっても今の人は飲み物しか浮かばないんだろうなぁ。

とりあえずお前がウェブ技術に疎いってことはよくわかったよw
242Name_Not_Found:2013/12/18(水) 02:03:44.35 ID:???
CSSスプライトってどのへんがスプライトなんです?
243Name_Not_Found:2013/12/18(水) 02:42:28.51 ID:???
ウェブアプリのショートカットキーにALTは使わない方がいいですか?
244Name_Not_Found:2013/12/18(水) 07:37:17.39 ID:???
> スプライトいっても今の人は飲み物しか浮かばないんだろうなぁ。
アホw
245Name_Not_Found:2013/12/18(水) 13:23:24.62 ID:???
「aとbが共に0ではない」

a && b
でいいですか?
246Name_Not_Found:2013/12/18(水) 14:04:32.75 ID:???
そうですね
&& 〜かつ
|| 〜か
247Name_Not_Found:2013/12/18(水) 22:32:38.26 ID:???
>>242
よく知りませんが、この業界でスプライトと言って
思いつくのはCSSスプライトですよ。
248Name_Not_Found:2013/12/18(水) 23:03:12.86 ID:???
>>246
ありがとうございます
-1 && 10
などが、ブール値でなく数字で返ってくるのが気になりますが実用上は問題ないですかね
249Name_Not_Found:2013/12/19(木) 00:16:53.20 ID:???
a と b が数値型だと確定しているなら素直に書いた方がいい
a !== 0 && b !== 0
250Name_Not_Found:2013/12/19(木) 00:26:17.42 ID:???
これは?
Boolean(a) && Boolean(b)
251Name_Not_Found:2013/12/19(木) 00:39:06.68 ID:???
関数呼び出しコストがかかるから!==0の方がいいね
252Name_Not_Found:2013/12/19(木) 01:03:07.94 ID:???
関数呼び出しコストよりも
可読性を重視させたい。
253Name_Not_Found:2013/12/19(木) 01:05:19.87 ID:???
数値型かどうかではなくて
変数名が重要なんだよ。

例ではよくaとかbとか
適当なのが使われるけどさ
この問題において変数名は重要なことの一つなんだよね。
254Name_Not_Found:2013/12/19(木) 01:51:52.86 ID:???
文字列からURLを取り出してリンクにする処理をtext.replace(/〜/g, "〜")で行いたいです。

前のリンクの</a>以降でURL文字列があったらリンク化するのですが、
置き換えた文字列は検索対象じゃないので、連続していると1つ目以降が置換されません。
対象文字列はすでに<a>〜〜</a>が含まれる可能性もあるため、</a>または行頭^から探しています。

確認用コード:
"ABCD<a>ABC</a>ABC ABC".replace(/((?:^|<\/a>)[^<>]*?)ABC/g, "$1<a>ZZZ</a>")
結果:"<a>ZZZ</a>D<a>ABC</a><a>ZZZ</a> ABC"
となり最後のABCが<a></a>で囲まれません
希望は"<a>ZZZ</a>D<a>ABC</a><a>ZZZ</a> <a>ZZZ</a>"となることです。

"ABCD<a>ABC</a>ABC ABC".replace(/((?:^|<\/a>)[^<>]*?)ABC/g, "$1<a>ZZZ</a>").replace(/((?:^|<\/a>)[^<>]*?)ABC/g, "$1<a>ZZZ</a>")
とすれば希望通りになるので、while (true)で1回もマッチしなくなるまで回すことも考えたのですが、
もっと良い方法があるのではないかとおもい質問しました。
255Name_Not_Found:2013/12/19(木) 03:04:42.75 ID:???
keydownイベントではshiftKeyプロパティもありますが、
shiftkeyだけを押下した時にもkeyCode=17になります
これどういうことですか
256Name_Not_Found:2013/12/19(木) 03:19:29.92 ID:???
keyCode17はctrlで、シフトは16でした
257Name_Not_Found:2013/12/19(木) 22:42:05.72 ID:???
このスレの住民ってJavascriptどれくらいできんの?
教えて
258Name_Not_Found:2013/12/19(木) 23:04:52.75 ID:???
for文の外にvar出すより中に書いた方が早いんだね@firefox
259Name_Not_Found:2013/12/20(金) 09:25:44.11 ID:???
jsdoitのオチスレとかないの?
260Name_Not_Found:2013/12/20(金) 14:04:15.94 ID:???
>>258
まじで?変な実装だな
261Name_Not_Found:2013/12/20(金) 18:01:58.32 ID:???
内部の最適化処理に任せた方が早いらしい
258はちゃんとjsprefで検証したから間違いない
262Name_Not_Found:2013/12/21(土) 00:38:36.71 ID:???
作法として合理的なのはvarを外に出す方だから、
一時の結果だけ見て中に入れるのは違うと思うけどね
多少のブレはあっても、合理的な方に近づいていく
263Name_Not_Found:2013/12/21(土) 03:06:51.33 ID:???
オブジェクトの参照と数値ってどっちがデータ大きいですか?
264Name_Not_Found:2013/12/21(土) 05:56:35.73 ID:???
if (a){
if (b){
} else {
処理A
}
} else {
処理A
}

こういう処理を綺麗に書くにはどうしたらいいですか?
265Name_Not_Found:2013/12/21(土) 07:50:43.48 ID:???
>>264
a & b || !a
266265:2013/12/21(土) 07:58:06.05 ID:???
>>264
a && b || !a に訂正
267Name_Not_Found:2013/12/21(土) 10:14:45.15 ID:???
>>263
多分だけど、参照≧数値。
268Name_Not_Found:2013/12/21(土) 11:28:07.26 ID:???
if (a){
 if (b){
 } else {
  処理A
 }
} else {
 処理A
}




if (a){
 if (b){
 } else {
  flag=true
 }
} else {
  flag=true
}

if (flag) {
 処理A
}



if (a){
 if (!b){ flag=true }
} else {
  flag=true
}
269Name_Not_Found:2013/12/21(土) 11:32:25.56 ID:???

if (a){
 if (!b){ flag=true }
} else {
  flag=true
}


if (a){
 if (!b){ flag=true }
}

if (!a){
  flag=true
}


if (a && !b) { flag=true }
if (!a) { flag=true }


if ( (a && !b) || !a) { flag=true }


flag = (a && !b) || !a


if ( (a && !b) || !a ) { 処理A }
270Name_Not_Found:2013/12/21(土) 11:44:05.87 ID:???

if ( (a && !b) || !a ) { 処理A }



if ( !(!a || b) || !a ) { 処理A }


if ( !(!a || b) || !a ) { 処理A }


if ( ! ((!a || b) && a) ) { 処理A }


if ( ! (a && !a || a && b) ) { 処理A }


if ( ! (a && !a || a && b) ) { 処理A }


if ( ! (a && b) ) { 処理A }


if ( !a || !b ) { 処理A }
271Name_Not_Found:2013/12/21(土) 11:54:01.88 ID:rif/Qctd
リンクを踏んだ際、リンク先が特定のドメイン以外の場合にのみ実行するスクリプトを書きたいのですが、どのようにすれば良いでしょうか?
下記の様な内容で、2行目の部分をノットイコールとしたいのです。
宜しくお願いいたします。

$(function() {
$('a[href^=http://hoge.jp/]').click( function() {
処理部分
});
});
272Name_Not_Found:2013/12/21(土) 14:28:19.10 ID:???
変形しすぎィ
273Name_Not_Found:2013/12/21(土) 16:03:38.20 ID:???
>>271
Attribute Not Equal Selector [name!="value"]
ttp://api.jquery.com/attribute-not-equal-selector/
274Name_Not_Found:2013/12/21(土) 16:57:51.89 ID:???
>>273
すみません、説明が足りませんでした。
ノットイコールが!=である事自体はわかっているのですが、それを「^=」と組み合わせる方法を知りたいのです
275Name_Not_Found:2013/12/21(土) 18:13:18.82 ID:???
canvasをクリックするとその場所にdiv要素を追加するものを作りたいです。

<div id="container" style="width:700px; text-align:left; margin: 0 auto">
<div id="div_canvas" style="width:700px; height:400px;">
<canvas id="canvas" style="width:700px; height:400px; z-index:0; border-style:solid;"></canvas>
</div>
...
</div>
canvasはこのようになっていて、
$("#canvas").click(function(e){
var box = $('<div>');
$("#canvas").append(box);
box.css("position", "absolute");
box.css("top", #div_canvasの左端を基準にしたx方向の距離 + "px");
box.css("left", #div_canvasの左端を基準にしたy方向の距離 + "px");
box.css("z-index", 100 + i++);
}
としてもページの左上を基準とした座標に表示されてしまいます。
どうすればいいのでしょうか。


を作り、
276Name_Not_Found:2013/12/21(土) 18:30:15.70 ID:???
>>271
$('a:not([href^="http://hoge.jp/"])').click(function(){
confirm("えっちなのはいけないと思います");
});
277Name_Not_Found:2013/12/21(土) 19:01:29.08 ID:???
if (a){
 if (b){
 } else {
  処理A
 }
} else {
 処理A
}

if (a){
 if (b){
  flag = false;
 } else {
  flag = true
 }
} else {
 flag = true
}

flag = true
if (a){
 if (b){
  flag = false;
 }
}


flag = ! (a && b)
または
flag = !a || !b
278Name_Not_Found:2013/12/22(日) 00:58:23.64 ID:???
デバッグ時に、算出した座標に目印を表示したいです
一番簡単な方法は何でしょう?
279Name_Not_Found:2013/12/22(日) 01:24:44.07 ID:???
まじめに動的にそこに要素を表示するのが一番早いデスネ
280Name_Not_Found:2013/12/22(日) 03:38:35.74 ID:???
プレステ3の起動画面みたいな「波」や「キラキラ」をJSで表現するにはどうやればいいですか?
281Name_Not_Found:2013/12/22(日) 06:06:12.56 ID:???
「波」や「キラキラ」を表現できる力を勉強して君がつける。
282Name_Not_Found:2013/12/22(日) 07:40:02.17 ID:???
Math.absは遅いらしいですが、absを使わずに絶対値を得る方法ないですか?
floorの代わりに|0をしたりするみたいな感じで
283Name_Not_Found:2013/12/22(日) 07:47:17.57 ID:???
var a = -10;
var b = (a>0)?a:~a+1;
console.log(b);

これでfloor(abs())が出来ました\(^o^)/
284Name_Not_Found:2013/12/22(日) 08:25:14.04 ID:???
^=こんな演算子初めて見たわ
285Name_Not_Found:2013/12/22(日) 10:17:38.94 ID:???
$=ならともかく^=程度を見たこと無いのは潜りw
286Name_Not_Found:2013/12/22(日) 11:27:45.32 ID:???
割り算のつもりで>>を使っていると、優先順位が低いから計算の順序が想定と変わるから注意しろよ
287Name_Not_Found:2013/12/22(日) 14:31:53.35 ID:???
JavaScriptに限らず、普段使わない演算子は案外知らないもんだよ
288Name_Not_Found:2013/12/22(日) 16:03:17.69 ID:???
JSON.parseでjsonをobjectに変換したらjsonに日本語が含まれるとエラーになるんだけどググっても解決策が出てこない、助けて〜
289Name_Not_Found:2013/12/22(日) 16:06:01.64 ID:???
どーせ文字コード指定してねーんだろ
290Name_Not_Found:2013/12/22(日) 16:31:28.41 ID:???
>>289
ANSIになってました、どうもありがとうございます
でもJSON.parseで文字コード指定できればいいのに・・・
291Name_Not_Found:2013/12/22(日) 19:21:11.50 ID:???
var getID = document.getElementById.bind(document);
こういうのを変数に入れておいて使いまわすの便利だぞ
なぜかダイレクトにdocument.getElementById呼び出すより早い
292Name_Not_Found:2013/12/22(日) 19:25:19.88 ID:???
function getID (str) {
return document.getElementById(str);
}
っていう関数使ってるのよく見かけるけど
これは関数呼び出しコストが高くついていただけない
293Name_Not_Found:2013/12/22(日) 19:27:04.60 ID:???
$ディスってんの?
294Name_Not_Found:2013/12/22(日) 19:31:35.93 ID:???
可読性落ちるので
295Name_Not_Found:2013/12/22(日) 20:19:24.42 ID:???
>>265>>266では用途が全く違うな
296Name_Not_Found:2013/12/22(日) 22:47:54.27 ID:???
長い名前でかつ使用頻度が高いもののエイリアスを作るってのはフレームワークでは常套手段
関数呼び出しコストがーとかそんなのは度外視
297Name_Not_Found:2013/12/22(日) 22:52:32.38 ID:???
>>291
var doc=document;でdoc.getElementByIdのほうが速いのと同じ理屈かね?
スコープチェーンの一番遠くにwindowがいてその中にdocumentが居るから、
手近なスコープに置いとくと名前解決が早くなるとか何とかいう結構古いTips。
今でも通用するのかは知らんけど、よく似た理屈な気がする。
298Name_Not_Found:2013/12/22(日) 23:23:05.63 ID:???
bindメソッドを利用することで関数にしなくていいってのが利点かな
jsprefで検証してみたら結構な差が出てた
299Name_Not_Found:2013/12/23(月) 02:35:30.83 ID:???
二つの線分同士の距離はどう調べればいいでしょうか?
http://en.wikipedia.org/wiki/Distance_between_two_straight_lines
直線同士の公式は見つけました
しかし線分同士じゃないので少し違うようです
300Name_Not_Found:2013/12/23(月) 03:03:49.84 ID:???
>>299
場合分けがいっぱいあって面倒くさそう。いろんなパターンを絵に描いて考えるといいよ。
ってか、そんなの何に使うんだろう…
301Name_Not_Found:2013/12/23(月) 03:07:10.39 ID:???
やはり場合分けですか
全部一つで出来るキレイな公式があればいいと思っていたのですが
ありがとうございました
302Name_Not_Found:2013/12/23(月) 03:36:36.46 ID:???
>>297
よく似た理屈といえば同じだが、
名前解決を早くしてるわけではなく、
DOM操作は重い処理だから1度計算したものをキャッシュして2回目からの計算をスキップしてるだけ。
ただ、DOMへの参照が残ってるとGCされないからAjaxとかしてるときは、
必要なくなったときに変数にnullを代入しないといけない。

>>292
function add(a,b)
retun a+b;
}
みたいな軽い処理で何万回も呼ばれるような関数なら呼び出しコストが高くつくけど、
getElementByIdみたいな重くて回数もあまり呼ばれない処理なら誤差だと思うけど?
それに、可読性の問題とか後から結果をキャッシュさせる変更も楽にできとかもあるから、
単に関数の呼び出しコストだけを見て1行関数をいただけないと言っているのなら、ナンセンス。
303Name_Not_Found:2013/12/23(月) 04:50:06.73 ID:???
>>302
> 2回目からの計算をスキップ
Function.bindって関数型でいうメモ化みたいな処理までやってくれるの…?
精々document検索コスト+document内でのメンバ検索コスト削減程度かと思ったんだが。
> 軽い処理で何万回も呼ばれるような関数なら
むしろJIT最適化が期待できたりしそう…ってのは動的JITに夢見すぎかな。
304Name_Not_Found:2013/12/23(月) 04:56:38.71 ID:???
>>292
フレームワークならいざ知らず、業務システムで汎用性ゼロの開発なのに
こういうゴミみたいなメソッドしかないクラス量産する奴等ってほんと様式美っつーか形に拘るよな
理屈ばっかでおまえらの実装したライブラリがゴミなんだよ
モジュール化?利用時にクラス内部覗かないと仕様書からじゃ理解できないゴミみたいな実装でどの口でwww
って感じだな
305Name_Not_Found:2013/12/23(月) 05:34:59.38 ID:???
bindは重いで有名なのに本当に速くなるのか?
306Name_Not_Found:2013/12/23(月) 06:28:32.03 ID:???
コスト気にするほど何回も使うなら最初にgetしたもんを使いまわすけどね
307Name_Not_Found:2013/12/23(月) 06:47:25.96 ID:???
1枚2KBのjpg画像1000枚を1ページに表示させおわるのに高速な方法って何ですか?
全ファイルをbase64化してJSに書いて読み込むと速いですか?
308Name_Not_Found:2013/12/23(月) 07:38:46.97 ID:???
データがものすごく肥大化しそうだな
309Name_Not_Found:2013/12/23(月) 07:54:09.92 ID:???
JavaScriptに累乗の演算子がないのは何故ですか?
310Name_Not_Found:2013/12/23(月) 08:40:16.43 ID:???
>>303-304
Funtion.prototype.bind の話がどこにあったの?
全く関係ないと思うけど
311Name_Not_Found:2013/12/23(月) 09:14:27.21 ID:???
>>307
それブラクラっていうんですよ
312Name_Not_Found:2013/12/23(月) 09:31:04.72 ID:???
>>307
そりゃもう、その1000枚をくっつけた画像1枚にすることでしょ。
313Name_Not_Found:2013/12/23(月) 09:55:01.81 ID:???
>>309
少数派でもないと思うんだけどね。
まあMath.pow()で用は足りるし。
314Name_Not_Found:2013/12/23(月) 10:41:33.00 ID:???
すぐに表示させずにsetTimeoutで呼び出した関数に読み込ませる
なんも変わらんけどとりあえずページ読み込みのクルクルはすぐ終わる
315Name_Not_Found:2013/12/23(月) 11:37:02.77 ID:???
123→0.123
123456→0.123456
こんな形で整数を小数点化するにはどうやればいいでしょうか?
316Name_Not_Found:2013/12/23(月) 12:13:33.88 ID:???
logで出来そうでしたが
1000も1も0.1になってしまうので想定した用途では使えませんでした
失礼しました
317Name_Not_Found:2013/12/23(月) 12:17:52.55 ID:???
頭に"0."を付け加えて数値化じゃ駄目なん?
318Name_Not_Found:2013/12/23(月) 13:21:48.82 ID:???
>>310
>>291よくみろ
319Name_Not_Found:2013/12/23(月) 16:28:35.44 ID:???
二つの値のmaxやminが欲しい時
関数呼び出しコストを考えると
Mathを使うより三項演算子を使った方が速いですよね?
320Name_Not_Found:2013/12/23(月) 17:27:09.29 ID:???
>>319
聞くんじゃなくて自分で計測しろ
321Name_Not_Found:2013/12/23(月) 17:35:22.25 ID:???
計測する→質問しない→他の人は答えを知らないまま
質問する→他の人も答えを知ることができる
よって質問した方がいい
はい論破
322Name_Not_Found:2013/12/23(月) 18:23:53.37 ID:???
その答えを知って、「おお、ならば私もそうしよう」となるとか思っているのかな。
323Name_Not_Found:2013/12/23(月) 18:39:21.28 ID:???
なんでならないってお前が決めるんだよタコ
324Name_Not_Found:2013/12/23(月) 23:01:58.80 ID:???
計測する→質問しない→自己解決能力が伸びる
質問する→すぐ他人に依存するようになる
325Name_Not_Found:2013/12/24(火) 01:39:15.30 ID:???
即時関数ってどっちが正しいとかありますか。
(function(){}());
(function(){})();
326Name_Not_Found:2013/12/24(火) 01:43:16.96 ID:???
後者。
327Name_Not_Found:2013/12/24(火) 01:58:53.82 ID:???
自己解決しました。
どっちも同じように動くけど前者が勧められているようです。
失礼しました。
ttp://en.wikipedia.org/wiki/Immediately-invoked_function_expression
ttp://benalman.com/news/2010/11/immediately-invoked-function-expression/
328Name_Not_Found:2013/12/24(火) 02:20:15.65 ID:???
>>324
自分で確かめるのは簡単だが知ってる人に聞いた方が早いから聞いてんの。
この程度の単純作業で自己解決能力なんて伸びないから。
329Name_Not_Found:2013/12/24(火) 05:40:33.73 ID:???
>>327
Crockford か…
330Name_Not_Found:2013/12/24(火) 07:05:24.13 ID:???
粒子法で炎の描画って可能でしょうか
331Name_Not_Found:2013/12/24(火) 10:33:15.60 ID:???
>>328
そう思ってるバカには一生無理だが、
速度比較は自分でコード書かなくても、比較結果まとまってて簡単に検索できるサイトもあるんだぜ。
聞くより早くて、自分の知らなかった記述方法の発見まであったりするわけだが。
332Name_Not_Found:2013/12/24(火) 13:28:52.96 ID:???
>>326
jslint的には前者じゃないとエラー出る
全然浸透してないけど前者のほうが自然だと思う
333Name_Not_Found:2013/12/24(火) 13:51:08.20 ID:???
>>325の後者は、Cでポインタ経由で関数を呼び出す書式に似てるね。
334Name_Not_Found:2013/12/24(火) 13:54:16.17 ID:???
しばし考えて見たが
どっちでもいいな
{}をどこに書くかとかと同じレベル
335Name_Not_Found:2013/12/24(火) 15:07:55.77 ID:???
タイプのしやすさでも前者だな
最後の閉じ括弧二連打が気持ちいい
336Name_Not_Found:2013/12/24(火) 16:19:19.50 ID:???
(())はまんこみたいだから後者だな
337Name_Not_Found:2013/12/25(水) 00:31:37.24 ID:???
>>328
この程度の簡単な質問で自己解決する時間を惜しむなら、もっと難しい問題も他人に聞くのだろう。
どんな問題も自己解決する事は永久に出来ないだろうね。
338Name_Not_Found:2013/12/25(水) 00:58:58.72 ID:???
>>336
万個は I だろ。
339Name_Not_Found:2013/12/25(水) 01:52:20.30 ID:aQ9V58dh
>>335
え、前から順に書くの?

カッコ開いたら、中身があっても、次は閉じカッコ書いて
一個戻るのって俺だけか?
340Name_Not_Found:2013/12/25(水) 02:38:29.26 ID:???
lispさんじゃないの
341Name_Not_Found:2013/12/25(水) 06:17:11.50 ID:???
>>337
そんなやつはプログラム自体組めないだろ
現実見ろよ
342Name_Not_Found:2013/12/25(水) 08:50:51.94 ID:???
setInterval()で1秒ごとに年月日曜時分秒を出力する処理を書きたくて
↓のようなコードを書いたんですが、時間が進みません。
new Date() のスコープ?が悪いのでしょうか?

var SimDate = function() {
 this.d = new Date();
 this.days = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"];
 this.sep = ' ';
};

SimDate.prototype.toString = function() {
 return "" +
  this.d.getFullYear() + this.sep +
  this.d.getMonth() + this.sep +
  this.d.getDate() + this.sep +
  this.days[ this.d.getDay() ] + this.sep +
  this.d.getHours() + this.sep +
  this.d.getMinutes() + this.sep +
  this.d.getSeconds()
  ;
};

var simdate = new SimDate();

window.setInterval(function () {
 console.log( simdate.toString() );
}, 1000);
343Name_Not_Found:2013/12/25(水) 08:53:00.97 ID:???
三項演算子の左項は()で囲む方がいいですか?囲まない方がいいですか?
344Name_Not_Found:2013/12/25(水) 08:58:04.98 ID:???
必要ないカッコは書かない方がいいという気持ちと
ある方が一目でまとまりを把握しやすいという気持ちが戦っています
345Name_Not_Found:2013/12/25(水) 09:01:28.13 ID:???
三項それぞれをすべて括弧で囲んで、
さらに外側も括弧で囲むくらいはしないと
優先順位で誤爆しやすくなるw
346Name_Not_Found:2013/12/25(水) 09:15:35.72 ID:aQ9V58dh
>>342
Date()オブジェクトってのは
ずっと動き続ける時計じゃないんだぜ
347342:2013/12/25(水) 09:41:07.81 ID:???
>>346
あざす。toString()内で this.d に new するようにしたら動きました
348Name_Not_Found:2013/12/25(水) 11:01:10.89 ID:???
>>341
> そんなやつはプログラム自体組めないだろ
だからそういってるんだけど。
「この程度の単純作業で自己解決能力なんて伸びないから」なんていえる程のレベルに達してない。
349Name_Not_Found:2013/12/25(水) 11:04:00.51 ID:???
>>343-344
>345で指摘されている優先順位を理解しているなら括弧で括る必要はないと思う
350Name_Not_Found:2013/12/25(水) 11:04:38.79 ID:???
>>348
バリバリ組んでるんだが。
少ないデータで結論を出すんじゃない。
それだけでC級プログラマーだと分かる。
351Name_Not_Found:2013/12/25(水) 11:04:56.37 ID:???
>>344
その必要のないカッコというのは、コンピュータがでしょう。
それを見る人間には要る可能性がある。
352Name_Not_Found:2013/12/25(水) 11:17:09.99 ID:???
JavaScriptに論理演算子のXORがないのは何故ですか
353Name_Not_Found:2013/12/25(水) 11:31:48.15 ID:???
>>350
どんなプログラムでもいいなら組めるでしょうよ。
あなたがいってるのは
「本気出せば書けるが、俺様は多忙だから試す時間がない。
多忙な俺様のために暇人共が時間を消費して情報提供しろ。
暇人なおまえらより俺様の時間のほうがよっぽど尊いのだ。」
という事。
そんな態度をとってる奴がまともな自己解決能力を持ってるとはとても思えないね。
354Name_Not_Found:2013/12/25(水) 11:36:17.24 ID:???
>>351
それ読む人のレベルによるんだよね。
ある程度、熟練すると括弧なしでもわかるようになる。
チームで作業しているなら低レベルな人材にあわせるようになるから全体のレベル次第といえる。
(正直、単純な参考演算子程度なら読める人材であって欲しいし、そこが読めないなら他の部分でも不安になる…。。)
355Name_Not_Found:2013/12/25(水) 11:36:38.05 ID:???
>>353
「消しゴム貸して」程度の気持ちで「知ってるなら教えて」と聞いただけ
むろん知らないなら答えなければいい
356Name_Not_Found:2013/12/25(水) 12:00:08.91 ID:???
こうゆう速度比較系の質問は、
質問してる時点で低レベルってのは明らかだけどな。
理由は実行速度はブラウザの種類やバージョンによって結果が変わるから。
IE10だとAが速いけどchromeだとBが速いとか、
IE7だとAが速いけどIE10やchromeだとBが速いとか
そんなのがざら。
しかもスマホとかが絡んでくるとさらに複雑になる。

たぶん、全部のブラウザの全部のバージョンで同じ結果が得られると思ってるんだろうけど、
その程度のレベルの人が自己解決能力伸びないとか、ばりばりコード書いてるとか言っても、
まったく説得力無い。
357Name_Not_Found:2013/12/25(水) 12:39:45.20 ID:???
>>356
低レベルはお前だよ
こういうレベルの連中が出てくるから頓珍漢な言いがかりはやめとけっつってんの
358Name_Not_Found:2013/12/25(水) 12:45:49.49 ID:???
>>357
え?何言ってんの?
今回の質問なんてIE10なら三項演算子のほうが数%速いけど、
chromeならMath使った方が倍くらい速いじゃん。
対象のブラウザも書かずにどっちが速いなんて聞かれても答えられる訳が無い。
359Name_Not_Found:2013/12/25(水) 12:58:29.87 ID:???
適当なことを抜かすな
http://jsperf.com/math-min-max-vs-ternary-vs-if
関数呼び出しコストがあるんだから遅いに決まってんだろタコ
360Name_Not_Found:2013/12/25(水) 13:07:01.21 ID:???
>>359
ごめんね、俺もjsperfでしらべたけど、
ちょっと余計な処理入ってる処理の比較結果だったわ。
でも、そこ見てるならわかると思うけど、
ブラウザによって結果変わる処理なんて腐るほどあるよ。
しかも、そこ使えばわざわざ2chで質問する必要すらないし。
361Name_Not_Found:2013/12/25(水) 13:20:15.08 ID:???
>>359
普通にMathの方が速いんだが@firefox
362Name_Not_Found:2013/12/25(水) 13:43:33.12 ID:???
IE10だと三項演算子よりif()のほうがわずかに速いし、
ブラウザによって結果が変わる良い例になってるじゃん。
363Name_Not_Found:2013/12/25(水) 13:52:36.83 ID:???
関数呼び出しが遅いからって、手作業でインライン展開しようとかいう発想が素人くさい。
364Name_Not_Found:2013/12/25(水) 14:52:37.25 ID:???
ブラウザによって変わるとか当たり前だろw
こういう場合は言うまでもなく一般的な環境でどうかという話をしてるんだよ
こんなことは言わなくても分かっておかなければいけないこと
D級プログラマーはつっこみ所がおかしいんだからじっとしたまま微動だにするな
365Name_Not_Found:2013/12/25(水) 14:57:14.06 ID:???
DOMオブジェクトを目印のために一瞬ピカッと光らせたいのですが
どうやればいいですか?
よくゲームで見るような、光に包まれたみたいな感じの処理です
366Name_Not_Found:2013/12/25(水) 15:08:21.12 ID:???
>>364
だから一般的ってなんだよ。
動かす環境によって速度が違うんだから、
一般的な解なんて存在しないんだよ。
条件によって結果が変わるのであれば、
質問時に条件を掲示するのは当たり前のことだ。

そもそも、全体の実行速度からみると誤差程度しか改善しないのに、
細部にまで高速化に拘ろうとするのは初、中級者にありがちなんだよ。
それなりの規模の開発だといろいろな人がコード見るし、
自分しか触らなくても数年前のコードだと忘れてたりするから、
基本は速度より可読性やバグが入らないシンプルな書き方を重視して、
ボトルネックになっている(なりそうな)箇所のみ最適化するってのが普通。
367Name_Not_Found:2013/12/25(水) 15:28:34.29 ID:???
いい加減jshintでチェックしない奴は滅びろや
windowを省略するのはダメコード
368Name_Not_Found:2013/12/25(水) 15:35:25.88 ID:???
存在しないプロパティにアクセスした事を知る方法を教えてください。
369Name_Not_Found:2013/12/25(水) 15:36:58.32 ID:???
try {
alert(window.aaaaaaa);
} catch(e){}
370Name_Not_Found:2013/12/25(水) 16:41:48.23 ID:???
>>366
傾向的な解は存在するに決まってんだろ
詭弁しか述べられないなら口をつぐんで黙祷しとけよ
371Name_Not_Found:2013/12/25(水) 16:58:48.71 ID:???
>>370
傍からで悪いんだが、一般的な環境ってどういう環境?
372Name_Not_Found:2013/12/25(水) 17:01:21.02 ID:???
>>369
答えになっていません。
373Name_Not_Found:2013/12/25(水) 17:21:53.19 ID:aQ9V58dh
>>367
why?
374Name_Not_Found:2013/12/25(水) 18:06:22.72 ID:???
documentにアクセスするのにも
window.documentとしなきゃいかんの?
375Name_Not_Found:2013/12/25(水) 18:12:33.51 ID:???
んなわけない
376Name_Not_Found:2013/12/25(水) 18:18:25.75 ID:???
>>371
逆に聞きたいんだが君は一般的な環境を想定せずにコーディングしているのか?
そんなことがありえるのか??
377Name_Not_Found:2013/12/25(水) 18:44:11.26 ID:???
当然だ!
省略できるものは全部省略するな
378Name_Not_Found:2013/12/25(水) 18:51:58.72 ID:???
documentをdocumentと書いてもjshintは何も言わないぞ
379Name_Not_Found:2013/12/25(水) 19:05:02.61 ID:???
>>376
は?ホントにJavaScriptでバリバリ開発してるのか?
普通は一般的な環境じゃなくて具体的な環境を想定して開発するだろ。
とりあえずIE6でも動くようにとか、IE9以降で動くようにとか、
FireFoxでも動かしたいとか、スマホ向けとかタブレット向けとか。
特にIE6とかが環境に入ってくると、
バグ回避とか高速化テクニックとかががらっと変わって、
IE6に特化したコーディングが必要になるわけだし。
で、できるだけクロスブラウザでってなったら、
速度や機能をある程度削って、どのブラウザでも確実に動くような機能(実装)にする必要があるわけだし。
JavaScriptで一般的な…なんて寝言は寝てから言えって感じだわ。
380Name_Not_Found:2013/12/25(水) 19:29:06.01 ID:???
「一般的」の意味を勝手に限定して否定かよ
相手の言葉を考えられる限り狭いものと勝手に解釈して否定するのは馬鹿特有の傾向
IQの高い人間は逆に相手の言葉を可能な限り広いものとして解釈するのでお前みたいな頓珍漢な否定は絶対にしない
381Name_Not_Found:2013/12/25(水) 19:37:51.25 ID:???
馬鹿は他人を自分より馬鹿と思いたがる(実際はそんなことは稀にも関わらず)
有能な人間は他人を自分と同じ程度の知性はあるとまず考える
これを胸に刻んでおけよカス
382Name_Not_Found:2013/12/25(水) 20:11:00.70 ID:???
>>380
だから、お前の言う一般的って言う意味はなんなんだよ。
それを説明しないからこうなってるんだろ。
各ブラウザで動いている言語はJavaScriptとは言われているけど
ECMAScriptという仕様が共通なだけで、
言語の名前も実装もブラウザによって別々なんだよ。
速度やメモリ管理という部分は実装に強く影響する部分なんだから、
どんなに拡大解釈しようが、一般的になんてものは無いと思うんだが。
一般的なJavaScriptの高速化という意味なら、
ECMAScriptの仕様に強く影響を受けてる部分で、
どのブラウザの言語でも同じ傾向が見られるテクニックが紹介されてるだけ。
383Name_Not_Found:2013/12/25(水) 20:25:18.96 ID:???
厨二罵倒合戦の会場はこちらですか?
384Name_Not_Found:2013/12/25(水) 20:31:33.57 ID:???
documentもちゃんとwindowを省略しないで書かないと怒られるぞ!
オプションぬるくしてんじゃねえぞ!
385Name_Not_Found:2013/12/25(水) 20:46:22.44 ID:???
>>382
この文脈で一般的って言ったら「よく使われているブラウザ」のことに決まってんだろうが
お前国語0点だったろ
386Name_Not_Found:2013/12/25(水) 20:48:19.86 ID:???
>>384
window.document.getElementById()
って書いてんのかよ
うざいコードだな
387Name_Not_Found:2013/12/25(水) 21:04:34.01 ID:???
window.documentとしなきゃならない理由ってなんなの?
388Name_Not_Found:2013/12/25(水) 21:24:27.80 ID:???
>>385
5年前ならまだしも、
今は、IE8,IE10,FireFox,Chromeのシェアってだいたい同じなんだぜ。
特に最近は急速にChromeのシェアが伸びてるのに、
よく使われるブラウザってどれだよ。
389Name_Not_Found:2013/12/25(水) 21:26:37.76 ID:???
var getId = function() {
390Name_Not_Found:2013/12/25(水) 21:27:21.42 ID:???
var getId = function(id) {
return window.document.getElementById(id);
}
391Name_Not_Found:2013/12/25(水) 21:28:47.28 ID:???
プログラマーはjshintにそってコーディングするべきだ!
コードの最適化や軽量化はコーディングでやるべきことじゃねえっ!
そういうのは専用のツールにまかせるべきだ!
プログラマーはメンテナンスせいのあるコードを書くことに集中しろ!
392Name_Not_Found:2013/12/25(水) 22:03:56.13 ID:???
>>385
よく使われてるブラウザ?
そんなのの速度を聞いて何の意味があるの?
一般的には速度を意識した記述をしなければいけないのは、
シェアが多い最新のブラウザじゃなくて、
速度が桁違いに遅い古いブラウザ(シェア小)なんだけど。
シェアの多いブラウザはどんな書き方ををしても速く動くのに。
393Name_Not_Found:2013/12/25(水) 22:32:53.95 ID:???
速度が遅くても、使われてないブラウザなら
無視するだろ。
394Name_Not_Found:2013/12/25(水) 22:36:10.39 ID:aQ9V58dh
速度で質問なんですが
ビジー、もしくはビジーに近づいているかどうかって
JSで検知できるもんですかね?
395Name_Not_Found:2013/12/25(水) 22:48:17.99 ID:???
>>393
無視していいなら無視するだろ。
でも大抵、速度遅いという問い合わせが来るのは
シェアが低い古いブラウザを使ってる人たちだけだし、
得意様が古いブラウザ使ってたりすると、
シェアが低くても古いブラウザに対応しなきゃいけないわけだし。
最新のブラウザのみで動けばいいサイトしか作ってない奴なら、
速度なんて気にせず好きなように書けばいい。
396Name_Not_Found:2013/12/25(水) 22:55:29.44 ID:???
>>376
開発する時、ブラウザのバージョンとかOSとかの前提条件を決めるのが普通だが
上の発言を見る限り、一般的な環境と言うのは、そういうのとは違うように思えたのだが
そういう解釈でいいのかな?
397Name_Not_Found:2013/12/25(水) 23:30:41.19 ID:???
>>396
> 開発する時、ブラウザのバージョンとかOSとかの前提条件を決めるのが普通だが
それが普通だよな。
だが、彼は「誰もが認める一般的な環境がある」といっているように読めた。
仕事ならクライアントが求める要求仕様が全てだが、それも一般的とか主観的な概念を持ち出しそうだ。
398Name_Not_Found:2013/12/26(木) 00:12:34.95 ID:???
即時関数ってクロージャのことじゃないの?
っつーかスコープを視覚化してくれるIDEないのかね
このスコープの仕様が糞すぎるから嫌いなんだよねJavaScript、というか動的型付けは
399Name_Not_Found:2013/12/26(木) 04:30:27.44 ID:???
>>359
JITバリバリな今のご時勢に関数呼び出しコストって安定したコストじゃない気がするんだけどな。
関数として切り出したほうが関数内の処理で型を確定させやすいだろうし、
インライン展開が行われないっていう保証があるわけでも無いだろうし。
400Name_Not_Found:2013/12/26(木) 10:17:09.04 ID:???
>>398
即時関数とクロージャは全く違う概念
401Name_Not_Found:2013/12/26(木) 10:33:32.73 ID:???
>>398
スコープは関数ごとにしかないんだから覚えろよ。圧倒的にシンプルだろ
402Name_Not_Found:2013/12/26(木) 11:24:59.11 ID:???
>>401
書いてる人なら覚えれば済むことだが、
読まなきゃいけないときは、クラス図とかないとかなりきつくないか?
ある関数内でthis.format()という関数が呼び出されていました。
formatの定義位置を探したら30個の定義が見つかりました。
どのformatが呼ばれているのでしょうか?
newした後に予想外の場所でプロパティやプロトタイプチェーンが上書きされてたりするようなソースだと、
発狂したくなるんだが。
403Name_Not_Found:2013/12/26(木) 13:28:34.95 ID:???
thisは死刑
404Name_Not_Found:2013/12/26(木) 13:33:05.09 ID:???
thisとselfはどう使い分けたらいいの?
ここの先輩なら理由あって使い分けていると思います
405Name_Not_Found:2013/12/26(木) 13:50:59.08 ID:???
thisは死罪
406Name_Not_Found:2013/12/26(木) 16:07:33.92 ID:+OPtIAmv
thisはそのメソッドを持ってるオブジェクトの参照ってだけじゃん
なので、いきなりメソッド名で検索って、あんまり賢くない気もする

> formatの定義位置を探したら30個の定義が見つかりました

> newした後に予想外の場所でプロパティやプロトタイプチェーンが上書きされてたり

ってのは、thisのありかたや関数スコープに根本的な問題があるわけではなく
全検索しなければならないようなコードの書き方や管理方法とか
コーディングの方針や規約に問題があるか、自分にあってないだけなんだよ
407Name_Not_Found:2013/12/26(木) 16:15:48.96 ID:???
>>402
同じオブジェクトの定義を分散して配置したり、同名の異なる機能を過剰に混在させたコードを書く奴が悪い
真面目な話、IDEとかから実際に動かさないでそれらを把握できる解析機あったらJSエンジンの世界に革命来るで
408Name_Not_Found:2013/12/26(木) 16:43:20.53 ID:???
極端だけど、こんな感じで関数作られてたらどうしようもないよね。

"one two three".split(' ').forEach(function (d, i) {
window['get' + d.substr(0, 1).toUpperCase() + d.substr(1)] = function () {return i + 1;};
});

console.log(getOne()); // 1
console.log(getTwo()); // 2
console.log(getThree()); // 3
409Name_Not_Found:2013/12/26(木) 16:56:36.84 ID:???
>>406
読むときというのは、オープンソースだったり、プロジェクトを引き継ぐ時だったりの事だから、
管理方法やコーディングの方針、規約に問題あると言われてもな。
それはあくまで理想論だよ。
オープンソースならまだいいけど、人目に付かないようなソースだと、
コメントも手を抜いてたりかなりひどいのが現状でしょ。
410Name_Not_Found:2013/12/26(木) 17:15:13.24 ID:???
>>408
結構好き
411Name_Not_Found:2013/12/26(木) 17:54:25.15 ID:+OPtIAmv
>>409
お、おう…

勝手に>>398 == >>402だと思い込んで
書き方がおかしいから糞なだけなのに、JSのスコープの仕様のせいだと主張している
のだと勘違いした
すまんこ
412Name_Not_Found:2013/12/26(木) 20:28:59.06 ID:???
>>397
「読めた」んじゃなくて「読んだ」んだろw
そんなものがないのは明らかなんだからそれを意味しているはずがない
A級以上のプログラマーは普通に考えたらあり得ない可能性を最初から除外するが
C級を以下のプログラマーはそういう解釈をまず真っ先に採用する
低能には他人の有能さが脅威なので、無意識のうちに安心したい選択を取るのだろうな
413Name_Not_Found:2013/12/26(木) 20:38:47.98 ID:???
>>412
お前が勝手に決めた一般的な環境を他人も同じように想定していると思ってるんだからそう読むしかないだろ
自分のコメントをもう一度読み直してこい
414Name_Not_Found:2013/12/26(木) 20:54:07.43 ID:???
いや最初から並のIQのある人間には分かるようにしか書いてねーから
とはいえ馬鹿にもっと賢くなれといっても無理だから
せめて書き込むな
迷惑だから
415Name_Not_Found:2013/12/26(木) 21:03:38.46 ID:???
>>412
終わった話をなに蒸し返してるの?
正真正銘のバカなの?
416Name_Not_Found:2013/12/26(木) 21:39:11.53 ID:???
A級C級www
417Name_Not_Found:2013/12/26(木) 21:41:20.97 ID:???
ありえない解釈をしての文句をやめればいいよ
本当に、なにひとつ得るものがないのでね
418Name_Not_Found:2013/12/26(木) 21:48:08.20 ID:???
A級C級とか何?
闇プログラマーのランカー制度か何かっすか?
419Name_Not_Found:2013/12/26(木) 22:45:39.14 ID:???
eventってどう書いてる?
e. aEvent. evt. ぐらいしか思いつかないけど
420Name_Not_Found:2013/12/26(木) 23:27:04.15 ID:???
this が不安なら call / apply 使えや
421Name_Not_Found:2013/12/27(金) 00:48:51.24 ID:SneGmt+g
javascriptでチャットを作っています
フォームに入力した文字をjqueryで追加しています
文字を追加すると同時に、画面を下にスクロールさせたいです
どんな関数を使えばいいのでしょうか?
422Name_Not_Found:2013/12/27(金) 01:01:05.65 ID:???
文字を追加すると同時に、画面を下にスクロールする関数を自分で作って
その関数を使えばいいよ。
423Name_Not_Found:2013/12/27(金) 01:39:40.33 ID:???
>>419
EventListenerの仮引数名がeventだからeventにしてる
424Name_Not_Found:2013/12/27(金) 05:31:18.66 ID:???
eventはグローバル変数になっている環境もあるので避けてる。
まあ e かな。
425Name_Not_Found:2013/12/27(金) 09:09:48.09 ID:???
>>423と同じ理由でeventにしてる。

>>424
グローバル変数のeventとaddEventListnerのeventを使い分ける必要性がないと思ってるけど、どう使い分けてる?
426Name_Not_Found:2013/12/27(金) 10:42:02.98 ID:???
>>425
使い分けるというより
function eventHandler() { event.xxx; }
みたいに引数にeventを書き忘れたときに、
グローバルのeventが参照されちゃうとかそうゆう事を心配してるような気がしたけど違うのかな?
グローバルのeventにアクセスしたいときはwindow.event使えばいいわけだし。

この手の変数名論争は最終的には好みの問題で決着つかない事が多いから、
ソース内で統一して使われてたらどっちでもいいってのが個人的意見。
427Name_Not_Found:2013/12/27(金) 10:54:46.07 ID:???
ただ、一般的な例だと、
引数はeでもeventでもどっちでもいいけど、
eventの場合はeに変換して使うみたいのが多い気はする。
サイ本にも書かれてるし。

function eventHandler(e) {
if(!e) e = window.event;
}

function eventHandler(event) {
var e = event || window.event;
}
428Name_Not_Found:2013/12/27(金) 11:15:45.50 ID:???
>>426-427
命名規則は個人の主観だからどうでもいいんだけど、「window.event と重複しないように命名する理由」がわからないんだ。
仮引数に付け忘れたらReferenceErrorになるからその時に仮引数つければいいだけの話だし。
attachEventも仮引数に対応してるし、あえていうならHTML埋め込み型の onclick や document.onclick で古いIEが対応してないことくぐらいかね。
それも呼び出し側で event を指定すればいい話だから全く持って重複を気にする理由がわからない。

> サイ本にも書かれてるし。
そうしないと対応できない環境がわからないのよ。呼び出し側はどう書かれてる?
429Name_Not_Found:2013/12/27(金) 11:27:54.40 ID:???
window.event を使用する必要があるのは document.onclick = listener; ぐらいかな
addEventListener を使えば済むからまず想定する必要がないが
430Name_Not_Found:2013/12/27(金) 11:30:40.19 ID:???
>>428
だから、どっちでもいいと思ってる俺にたいして、
eventを使っちゃいけないという理由を聞かれても答えられるわけがない。
431Name_Not_Found:2013/12/27(金) 11:45:01.91 ID:???
あえて考えるとするなら、IE向けサイトで
attachEvent()とonclickを共存させてて、
attachEventのlistenerに引数付け忘れた時とか?
複数人が自由気ままに開発してるような環境なら、
100%問題が起こらないとは言い切れない気もするので、
わざわざ重複する変数名を選ばないというのは良い選択なんじゃないだろうか?
432Name_Not_Found:2013/12/27(金) 12:12:47.08 ID:???
CodeIQのFizzBuzzダンジョンのLv3とLv4の解き方がわかんないよおおおおおおおお
433Name_Not_Found:2013/12/27(金) 12:32:15.82 ID:???
本当は安全なのかもしれないけど、そうゆう細かいことを考えるのが面倒だからeを使ってるのに、
eventを使ってる人がeを使ってる人に理由を考えさせるのがよくわからん。
あえてeventを使ってる人が、あらゆるパターンを検証して、
eを使うのと全く変わらないということを証明してから使わなきゃいけないことなのに。
検証しなきゃ使えないのと検証しなくても使える。
この差は大きいと思うけど。
434Name_Not_Found:2013/12/27(金) 14:01:16.03 ID:WzZETLWR
1文字の変数はなんか気が引ける
理由は自分でもよくわからんが


>>421
$.css()
435Name_Not_Found:2013/12/27(金) 14:15:28.05 ID:???
i とか j とか使わないの?

言語は変わるけど、VSの自動生成でもイベント変数は e になってるし、e で十分分かると思う
436Name_Not_Found:2013/12/27(金) 14:57:54.92 ID:???
グローバルで使われる可能性がある変数名と同じ名前にしてよいかというのが論点なんだから、
eがいやならevtとか好きなの使えば良いだけなんだけどな。
437Name_Not_Found:2013/12/27(金) 15:05:16.67 ID:???
eがしっくりくる関数とeventがしっくりくる関数があるから困る
438Name_Not_Found:2013/12/27(金) 15:20:58.26 ID:???
http://www.cypress.ne.jp/s-4/rpgtown2/charamaker.htm
こんな感じの「設定項目ごとに更新」「その結果を下の方にまとめる」というのをjavascriptで真似したいのです。
しかし関数を実行するボタンを作って押すと更新されたページにテキストのみが表示されてしまいます。ネットの講座等を見てもそこら辺が書いていません。
色々とググった結果拾い物で、
<script type="text/javascript">
<!--
function Sample(){
var x,n=100;
n+=1;
x = Math.floor(Math.random()*n);
document.getElementById("t1").value = x;}
//-->
</script>
<input type="button" tabindex="1" onclick="Sample()" value="乱数生成"><br>
<input type="text" tabindex="2" id="t1" name="t1" value="">
というのが理想に近いと分かりました。
この「ボタンを押すと結果が新しいページではなくテキストボックスに代入される」
というあたりの理屈を初心者に教えていただけないでしょうか。
439Name_Not_Found:2013/12/27(金) 15:34:04.36 ID:???
ちなみにこれがコピペを混ぜて作ろうとして失敗しているものです
<script type="text/javascript">
<!--
function Sample(){
var x=new Array(
"ももたろう","さる","きじ","いぬ","おに"
);
document.write(x[Math.floor(Math.random()*x.length)]);

document.getElementById("t1").value = x;}
//-->
</script>
<input type="button" onclick="Sample()" value="乱数生成"><br>
<input type="text" id="t1" name="t1" value="">

別なページに文章だけ出てしまうのはdocument.writeのせいだとは思うのですが
document.writeの中身の計算をどこにぶち込めばいいものか…
440Name_Not_Found:2013/12/27(金) 16:09:50.81 ID:WzZETLWR
>>439
document.writeは出力じゃなくて、ドキュメントの上書きだと覚えておけば
こういう時に使うもんじゃないとわかるはず

input要素のvalueに値を入れたのと同じように
適当なボックスを作って、そのinnerHTMLにでも入れればいいよ
441Name_Not_Found:2013/12/27(金) 17:16:47.03 ID:???
Document.writeは不安定すぎ。
442Name_Not_Found:2013/12/27(金) 18:42:14.53 ID:???
>>440
3時間近く格闘してようやくできました…。
function Sample(){
var x= new Array("ももたろう","さる","きじ","いぬ","おに");
n = Math.floor(Math.random()*x.length);
document.getElementById("test").value = x[n];
};
<input type="button" onclick="Sample()" value="登場人物">
<input type="text" id="test" name="test" value="">

2時間くらいかかってようやくx[Math.floor(Math.random()*x.length)]の意味を理解…。
ただ悩んで調べた事で、配列や代入のあたりについていくらか勉強になったように思います。
ありがとうございました。
443Name_Not_Found:2013/12/27(金) 19:00:09.89 ID:???
あれ? eの話し終わった?

eはerrorの意味で使ってるから使えない。
Elementの場合はel、
eventはそのままeventを使ってる。
444Name_Not_Found:2013/12/27(金) 19:07:48.71 ID:???
>>443
そこまでやったら訂正する気になるな。

function Sample() {
 var x = ["ももたろう", "さる", "きじ", "いぬ", "おに"];
 var n = Math.floor(Math.random() * x.length);
 document.getElementById("test").value = x[n];
}
<input type="button" onclick="Sample()" value="登場人物">
<input type="text" id="test" name="test" value="">
445Name_Not_Found:2013/12/27(金) 19:15:10.15 ID:???
>>443
一文字が使えるときって大抵ローカルで使うから気付かず衝突してトラブルになるって事はまず無い。
使えないって事は無いような……ああでも大半の関数にtry-catch付いてるようなケースだと駄目か。
だがグローバルで使ってる場合がありうるから(>>424)面倒を避ける(>>433)為に使わないってのも筋は通る。

既存コードやコーディングスタイルに依存して決まる問題で、一般的な正解はないって解答が一番しっくり来るな。
446Name_Not_Found:2013/12/27(金) 19:17:35.05 ID:???
使えないっていうのは、エラー用に予約してるって意味。
これはC++やJavaの時からそうしてる。
447Name_Not_Found:2013/12/27(金) 20:18:01.16 ID:???
仕様書の例だと、DOM4では e ev event が、DOM3では e evt がてきとーに使われてるね
448Name_Not_Found:2013/12/27(金) 21:10:14.42 ID:???
try-catch は ex だわ
449Name_Not_Found:2013/12/27(金) 23:43:19.61 ID:???
eはerrorとして
xはなんなんだ?
450Name_Not_Found:2013/12/27(金) 23:55:13.54 ID:???
えくせぷしょん
 ↑
このへん
451Name_Not_Found:2013/12/28(土) 02:59:11.29 ID:???
わたしを捕まえてごらーん きゃっきゃうふふ アンアン
                              ↑コノヘン
452Name_Not_Found:2013/12/28(土) 03:00:22.65 ID:???
普段仕事じゃ.NETしか触らないからプライベートでJavaScript勉強中で急がば回れじゃないけど
基本を覚えるためにjQueryやAjax.API使わずに書いてるんだけどクラスベースじゃないし外部参照もないからきついねw
onloadで2つ以上のjs実行がHTMLハードコーディングのイベント追加なら出来たんだけどスマートじゃないから
XMLHttpRequestでやろうと思ってて、js読み込みまでは来たんだけどこれ外部jsファイルをオブジェクトにparseできないの?
いい方法あればアドバイスたのんます
453Name_Not_Found:2013/12/28(土) 03:17:22.62 ID:???
>>452
> onloadで2つ以上のjs実行
<body onload="fn1();fn2()">
addEventListener, attachEvent

> jsファイルをオブジェクトにparse
eval
JSON.parse
xhr.responseType = 'json'
454Name_Not_Found:2013/12/28(土) 03:42:26.10 ID:???
>>452

jQueryのソースコードを解析するのが
いい勉強になる。
455Name_Not_Found:2013/12/28(土) 15:40:36.62 ID:???
javascriptを頑なにオフにしてるユーザーに遭遇したことありますか?

オンにするくらいだったら、こんなサイトいらんわ!くらいの。

javascript必須にしたいんですけど、同時に1%でもユーザビリティ下げるのは間違いないので心配です。
456Name_Not_Found:2013/12/28(土) 15:58:08.36 ID:???
クロスブラウザ含めて毎回思うんだが。
誰に・どこで・どのように、見て欲しいか考えないで作るって頭悪いよな
JS使わないと目的のサイトが作れないのに、JSオフにするような閲覧者なんて対象外だろ
仕事なら要件定義で失敗してんだよ
457Name_Not_Found:2013/12/28(土) 17:54:59.74 ID:???
手段が目的化してるね
458Name_Not_Found:2013/12/28(土) 19:11:35.28 ID:???
>>455
ヘタなJavaScriptかかれるとマトモに動かないって時にJavaScript切るって人ならここに。
JavaScriptでユーザビリティを上げてるつもりが、実は自己満足上げてユーザビリティ下げてる事があるのがなんつーかね。
JavaScriptなしで表現できる事はJavaScriptなしで表現して、追加表現だけJavaScriptでやるべきじゃないかと思う。

クロスブラウザ対応コスト考えたら最小限のHTML表現が一番安いし。
459Name_Not_Found:2013/12/28(土) 19:50:25.26 ID:???
>>458
あなたが、JavaScriptを切ったサイトを
教えてくれませんか?
460Name_Not_Found:2013/12/28(土) 23:09:18.39 ID:???
>>453-454
ありがとう、別の古典的な方法だけど実装できたよ
でもなんか納得いかないコードでモヤモヤするな・・・
まさかFunction作らずにそのままプロシージャ記述できるとはびっくり
jsファイルそのものがメソッドでその中にクロージャを閉包するってイメージでいいのかな
461Name_Not_Found:2013/12/28(土) 23:36:36.64 ID:???
ゲーム用のマクロを組むことを最終目標にJava本格的に勉強したいんですが
まったくの初心者なのでなにから学べばいいのかぜんぜんわかりません
(一応C++とVBは触ったことありますが簡単な関数を作れる程度の知識しかありません)
ゴーストリプレイとかそういうのは基本的になしで挑戦したいんですけど、おすすめの本などあれば教えていただきたいです
スレ違いでしたら適切な場所に誘導してもらえると助かります
よろしくお願いします
462Name_Not_Found:2013/12/28(土) 23:49:27.92 ID:???
>>461
とりあえず、Javaの質問ならJavaスレへ行くべきではないかと
463Name_Not_Found:2013/12/29(日) 04:55:01.20 ID:???
>>459
忘れた。
Opera使ってるとチマチマ動かないサイトとか出てきたけど、
Presto終了のお知らせ出たからもう使う気しないしなぁ…

>>461
荒れてるけど、
スレ立てるまでもない質問はここで 132匹目
http://toro.2ch.net/test/read.cgi/tech/1388206547/
464Name_Not_Found:2013/12/29(日) 08:05:16.36 ID:???
そこまで気になるならブラウザ別でコードを振り分ければいいだろ。
465Name_Not_Found:2013/12/29(日) 08:10:47.88 ID:???
>>307
画像を1枚にまとめて圧縮しまくれ。HTTPリクエストを減らせばマシだろ。
466Name_Not_Found:2013/12/29(日) 08:15:28.54 ID:???
>>239
スプライトくんにはゲーム制作でもバリバリお世話になってますよ。ある程度FPSを維持できるもんね。
467Name_Not_Found:2013/12/29(日) 18:41:58.17 ID:???
JSは単純だと言う人多いけどぜんぜん単純じゃないねこれ
クラスベースの方がぜんぜんわかりやすい、プロトタイプがいまいちわからん
function a(){a.prototype.b=function(){}}は
c=new a(); c.b();ができるけど
function a(){a.prototype.b=function(){a.prototype.b.prototype.c=function(){}}}は
d=new a(); d.b.c();はエラーになる
クラスメソッドのネストってfunction a(){function b(function c(){})}でもダメだしどうやるの?
468Name_Not_Found:2013/12/29(日) 19:11:22.01 ID:???
自己解決
多重継承すればできるね、これがMixinってやつかな?
いやしかしプロトタイプベースはほんと難しいね
469Name_Not_Found:2013/12/29(日) 20:47:34.86 ID:???
オブジェクト指向にはオブジェクトがあればいいだけなんだけど、
Java脳のやつらがクラスや継承がなければオブジェクト指向じゃないと思い込んで、
使わなくてもいいprototypeを無理に使ってややこしくしてるだけ。
470Name_Not_Found:2013/12/29(日) 21:27:12.57 ID:???
>JSは単純だと言う人多いけど

それ十数年前の話じゃね
オブジェクト指向で書ける事すら殆ど知られてなかった時代
471Name_Not_Found:2013/12/30(月) 00:00:36.60 ID:???
引数でイベントの着脱を振り分けようと思って
試しにこんなふうに書いてみたら無名関数のremoveでコケました
なにかいい方法はないでしょうか

function func(a,e,f){
if(a){
e.addEventListener('click',f,false);
}else{
e.removeEventListener('click',f,false);
}
}
func(true,window,function(){
console.log('event!');
}
);
472Name_Not_Found:2013/12/30(月) 00:24:05.61 ID:???
function func(a,e,f){
if(a){
e.addEventListener('click',f,false);
}else{
e.removeEventListener('click',f,false);
}
f(a,e);
}
func(true,window,function(){
console.log('event!');
}
);
じゃないかな
いわゆるコールバック関数ってやつ
473Name_Not_Found:2013/12/30(月) 00:53:17.64 ID:???
無名関数をremoveするfuncを作ったとして
それを実行するときの引数fはどうやって指定するつもりなんだ
474Name_Not_Found:2013/12/30(月) 01:37:52.80 ID:???
jsにデリゲートがあるのか知らんがコールバック用意しないと呼び出し側のトリガー作れないだろw
475Name_Not_Found:2013/12/30(月) 01:56:40.31 ID:???
なんでremoveEventLisnerはイベント消すのに
登録した関数が必要な仕様にしちゃったんだろうね。

setTimeoutみたくid使って消せるようにしておけば
わかりやすかったのに。
476Name_Not_Found:2013/12/30(月) 02:18:06.00 ID:???
>>471
無名関数オブジェクトがfunc呼び出し側のを実行するたびに再生成されてんじゃない?
適当な変数に突っ込んでどこかに避けとくしか思いつかん。
477Name_Not_Found:2013/12/30(月) 06:46:25.18 ID:???
iphoneのsafariをmacのsafariでデバッグできるようですが
windowsで同じことする方法ありませんか?
478Name_Not_Found:2013/12/30(月) 06:51:54.64 ID:???
>>475
jqueryならポストフィックス使って消せるよ
479Name_Not_Found:2013/12/30(月) 09:14:42.35 ID:???
http://jsbin.com/uNeCOcOs/1/edit

キーダウンするとカーソル変化用レイヤをbodyに追加し、アップすると消去します
firefoxだと瞬時にカーソルが変化しますが、chromeだとラグがあります
カーソルを動かすと再描画されるので変化しますが、動かす前に反応させたいです
chromeでも瞬時に変化させるにはどうしたらいいでしょうか
480Name_Not_Found:2013/12/30(月) 11:13:18.79 ID:???
>>478
うん、知ってる
481Name_Not_Found:2013/12/30(月) 13:24:32.35 ID:???
フレームワークとフォーンゲップ使えばネイティブアプリ作れるね。
482Name_Not_Found:2013/12/30(月) 13:30:38.55 ID:???
は?なめてんのか
483Name_Not_Found:2013/12/30(月) 14:59:43.97 ID:???
ぺろぺろ
484Name_Not_Found:2013/12/30(月) 15:05:03.94 ID:???
動作部分は出来たのですが>>479のカーソル変更問題だけ解決しません
どなたかお願いします
485Name_Not_Found:2013/12/30(月) 15:31:47.17 ID:???
っつーかjQueryやKnockout使わずに書ける奴ってほんと少ないよな
こんなチートフレームワーク使ってドヤ顔とか笑わせるわ
ウェブしかやってない奴はプログラミングの基礎を知らない奴が多過ぎる
486Name_Not_Found:2013/12/30(月) 15:45:01.64 ID:???
>>479の件ですが
http://stackoverflow.com/questions/1718415/getting-the-browser-cursor-from-wait-to-auto-without-the-user-moving-the-mou
この手法で解決できました
ありがとうございました
487Name_Not_Found:2013/12/30(月) 17:43:01.14 ID:???
jqueryでonでハンドラを設定した要素をremoveする前に
offしなかったらメモリーリークになりますか?
488Name_Not_Found:2013/12/30(月) 17:57:47.71 ID:???
NO
489Name_Not_Found:2013/12/30(月) 18:02:59.84 ID:???
>>485
使えるもんは使えばいいだろ
490Name_Not_Found:2013/12/30(月) 18:05:10.73 ID:???
jqueryでonしたものはちゃんと良きにはからってくれるんですね
では生JSでハンドラを付けていたらどうなるのでしょうか?
まぁそんな変なことすることはあまりないとは思いますけども
491Name_Not_Found:2013/12/30(月) 19:16:00.06 ID:???
javascriptの関数メソッドのソース見る方法ってないですか?
492Name_Not_Found:2013/12/30(月) 20:26:26.57 ID:???
>>485
> っつーかjQueryやKnockout使わずに書ける奴ってほんと少ないよな

ほんとだよな。

こんな所でjQueryやKnockoutを使わないで
書くやり方を ”聞いている” 奴のことだよ。

書けないのなら諦めてjQueryとか使えばいいのに。
493Name_Not_Found:2013/12/30(月) 20:32:23.68 ID:???
ブラウザが用意したAPI(DOM)を使おうが
jQueryが用意したAPI(ライブラリ)を使おうが
どちらにしろ、他人が用意したAPIを使っているわけで
どっちを使えるのが上かとか下かなんてないんだけどな。

どんなに技術力がある人であっても、
jQueryの方が簡単で便利と言うだろうし、
DOMは使いづらいと言うだろう。
494Name_Not_Found:2013/12/30(月) 22:22:24.32 ID:???
決まり切ったもの作るならjqueryしか使えなくてもいいけど
そうじゃないならjqueryerではやっていけない
495Name_Not_Found:2013/12/30(月) 22:50:21.93 ID:???
JQが肥大化しすぎたから互換ライブラリに変えてみたけど、予想以上にエラーも無く快適に動いた。
496Name_Not_Found:2013/12/30(月) 23:06:29.33 ID:???
そんなの出てきてたんだ
lodashみたいなもんか
497Name_Not_Found:2013/12/30(月) 23:23:32.96 ID:???
>>494
決まりきったものって具体的に何?

jQueryは汎用のDOMライブラリだから
別に決まったものなんて無いけど。

あえて言うのなら、決まりきったDOM操作用途と
言えなくもないけど。
498Name_Not_Found:2013/12/30(月) 23:26:33.58 ID:???
jQuery互換ライブラリってのは
jQuery - あまり使われない機能

その分サイズは減ってはいるが、あまり使われない
機能を減らしてもそれだけのメリットはないように思われる

lodashは、Underscore + α
Underscoreよりも機能が増えて速度も速くなってるから
jQuery互換ライブラリとは方向性が正反対。
499Name_Not_Found:2013/12/30(月) 23:31:08.28 ID:???
jqueryが提供している機能におさまるもの。
jqueryer=jqueryしか使えない人ね
500Name_Not_Found:2013/12/30(月) 23:47:55.00 ID:???
完全互換じゃないとプラグインの流用が出来ないからイマイチかな
501Name_Not_Found:2013/12/31(火) 03:15:47.17 ID:???
>>499
jQueryしか使えない人っていないだろw
502Name_Not_Found:2013/12/31(火) 03:16:51.45 ID:???
jQueryが使えない人ならたくさんいそうw
503Name_Not_Found:2013/12/31(火) 08:41:52.07 ID:???
jQueryの下の生JSの動作原理をよく分かってないやつはいるよ
504Name_Not_Found:2013/12/31(火) 14:05:44.26 ID:8IyzuMAS
jQuery以前に使っていた自前の関数群が懐かしい
似たようなものが多いけど、幾つかはjQより速いのや柔軟なものがあった、はず

んで、たまーに古いサイトのメンテナンスでそれが出てくると
今の社員では全く使えないので自分でやる羽目になる…
505Name_Not_Found:2013/12/31(火) 14:44:53.60 ID:???
なぜソースコードがあるのに使えないのか?

それは柔軟なのではなく、いろんな機能を詰め込み過ぎで
しかも直感的ではなく複雑なだけではないだろうか。
506Name_Not_Found:2013/12/31(火) 15:16:35.98 ID:???
最小値以下なら最小値、最大値以上なら最大値、
という処理を、Math.minやMath.maxでやるのとifでやるのと
どっちがいいですか?
507Name_Not_Found:2013/12/31(火) 15:39:53.17 ID:???
>>504
速いのって単にメモリリークの処理とかちゃんとやってないだけじゃねーの?
jQueryとかのソース見ればわかることだが、
特定のブラウザのバグとかリークに対応するために、
重い処理になってる関数が結構ある。
508Name_Not_Found:2013/12/31(火) 15:52:51.55 ID:ol4RjipZ
>>507
00年代前半としては、そこそこちゃんとしてたと思いたいなあ
まだMac版のIEとかが現役だった頃に作って、今でもかろうじて動いてんだからw

楽するために作り始めた関数群なのに
いつの間にかそっちのメンテしてる時間の方が長くなっちゃったりしたなあ
若さゆえの過ちだったわ
509Name_Not_Found:2013/12/31(火) 16:02:56.55 ID:???
俺だったら5年ぐらい前に、自分の作った関数の実装を
jQueryに置き換えて徐々にjQueryに移行できるように
しているだろうな。
510Name_Not_Found:2013/12/31(火) 16:11:14.64 ID:???
こういうのはね。若さゆえの過ちで終わらせたらいけないんだよ。
そもそも若さとは関係なくて、jQueryやPrototypeなどが無い時代に
これらに匹敵するライブラリを自作するのはまずムリだろう。
だから(今からすれば)誰だって誤った道に進む。

問題なのは、その誤った道に進んだものを救済せずに
ずっとその道のまま進ませること。
これは昔の自分ではなく、今の自分がやってることでしょ?
それなのにそれを昔の自分のせいにしてる。現在進行形で間違い続けてるんだよ。

間違った道に進んだと気づいたなら、
それを正しい道につなげる道を作らなきゃ。
つまり、オレオレライブラリからjQueryライブラリへの
移行方法を確立しなければいけなかった。
511Name_Not_Found:2013/12/31(火) 16:14:44.96 ID:???
そのjQueryが絶対神みたいな論調なんなの
512Name_Not_Found:2013/12/31(火) 16:38:02.42 ID:???
jQueryじゃなくてもいいよ。
それと同等以上に効率的にかけるものを使えば良い。
513Name_Not_Found:2013/12/31(火) 16:41:56.28 ID:???
うざい説教垂れてるやつなんなんだよw
くだらねーこと言ってないで大掃除でもしろ
514Name_Not_Found:2013/12/31(火) 16:47:53.99 ID:???
日頃から掃除をしていれば、
大掃除は必要ない。

大掃除なんてものをするのは日本ぐらいだぞ。
ただの文化であり、たいした理由があるわけじゃない。
515Name_Not_Found:2013/12/31(火) 17:03:39.52 ID:???
文化に大した理由がないとかワロタ
516Name_Not_Found:2013/12/31(火) 17:21:08.33 ID:???
var a=(function () { 処理 }());って使い方がありますが、
これってvar a=function () { 処理 }();ではダメなのでしょうか?
違いを教えて下さい
517Name_Not_Found:2013/12/31(火) 17:38:57.68 ID:???
>>516
無名関数だと読み込みが早くなるとか
間違ってたらスマソ
518Name_Not_Found:2013/12/31(火) 17:46:50.62 ID:???
質問です
http://ijbk.deci.jp/?p=1060
のイベントの伝達ってとこがよくわからないのですが
クリック後の流れをもうちょっと詳しく説明してもらえないでしょうか
519Name_Not_Found:2013/12/31(火) 18:00:29.56 ID:???
>>516
一貫性のためだから問題ない
>>517
大間違い謝れ
520Name_Not_Found:2013/12/31(火) 18:14:55.57 ID:???
配列のシャッフルって良い方法ない?
なんかきちんとやるなら泥臭い方法になるようだけど、ランダム数値を取るのに2回め以降は単純な演算で済むシード値を使う方法のように、実質ほぼシャッフルでいいので、美しくパフォーマンスの良い方法教えて。
521516:2013/12/31(火) 18:19:55.77 ID:???
>>519
>>>516
>一貫性のためだから問題ない
とは、無名関数の実行を変数に代入するしないに関わらず
(function () { 処理 }());に統一するためということでしょうか?
522Name_Not_Found:2013/12/31(火) 18:56:45.41 ID:???
>>516
後者だと最後の() が出てきて初めて関数そのものを代入しているんじゃないってわかるでしょ?
前者だと (function のところでわかる。
523Name_Not_Found:2013/12/31(火) 19:10:09.51 ID:???
分かる分からないじゃなくて
本当は括弧なんて付けないで即時関数は
function(){}()
と書きたいけど、平の場合は式ではなく宣言と取られてエラーになってしまうから括弧でくくったりしないといけない
文中の場合は式ととってくれるので括弧は必要ないが、前者との一貫性のため、つけ忘れたり勘違いが起こらないために付けたほうがいいというやつもいる
524Name_Not_Found:2013/12/31(火) 19:20:04.62 ID:???
>>520
なに言いたいのか知らんけど長さNの配列に対してN-1回のループ回してN-1回ランダム関数呼んでN-1回のswapで終わらす定型文じゃ駄目なの?
こんなんfor(var i=0;i<list.length-1;i++){var t=list[i],p=Math.floor(i+Math.random()*(list.length-i));list[i]=list[p];list[p]=t;}
525Name_Not_Found:2013/12/31(火) 20:00:00.98 ID:???
例えばこういうの

as = new ArrayShuffle(10)
as(arr1)
as(arr2)
as(arr3)

その長さの配列を決まったパターンでスワップする、使いまわせる関数を自動生成して欲しい。
526Name_Not_Found:2013/12/31(火) 20:06:49.05 ID:???
例えば
f = new ArrayShuffle(3)
なら
f = a => [a[0],a[1],a[2]] = [a[1],a[2],a[0]]

f = a => [a[0],a[1],a[2]] = [a[2],a[0],a[1]]
なんかが生成される感じ。
527Name_Not_Found:2013/12/31(火) 20:45:16.65 ID:???
JavaScriptに連番のリストを作る方法がないのは何故ですか?
皆さんどうされているのでしょうか
528Name_Not_Found:2013/12/31(火) 21:03:08.21 ID:???
>>525
function ArrayShuffle(len) {
 スワップに必要な乱数を生成して配列に保存

 return function (arr) {
  保存されてる乱数を元に arr を操作
 };
}

という感じで作ってみれば?
529Name_Not_Found:2013/12/31(火) 21:07:22.59 ID:???
foreachがないのが一番糞
530Name_Not_Found:2013/12/31(火) 21:37:56.42 ID:???
>>528
それだとパフォーマンス悪いからnew Functionで作ったほうがいい
>>529
ありゅよ
531Name_Not_Found:2013/12/31(火) 22:25:13.04 ID:???
2014年はES6の年だな
ES6なら連番リストだろうがなんだろうがお茶の子さいさいよ
532516:2013/12/31(火) 22:42:47.41 ID:???
みなさま。ありがとうございました
変数に代入して使うときでも、var a=(function () { 処理 }());
を使用することにします。
533Name_Not_Found:2013/12/31(火) 22:57:32.31 ID:???
var a=(function () { 処理 }());
はそうすることにした経緯からするとおかしい
var a=(function () { 処理 })();

var a=function () { 処理 }();
かでないと意図が掴めない
534516:2013/12/31(火) 23:03:14.27 ID:???
>>533
Immediately-Invoked Function Expression (IIFE)
(function(){ /* code */ }()); // Crockford recommends this one
(function(){ /* code */ })(); // But this one works just as well
http://benalman.com/news/2010/11/immediately-invoked-function-expression/

実行速度が(function(){ /* code */ }());のほうが速いとありました
http://polygon-planet-log.blogspot.jp/2011/12/javascript-function-function_17.html
535Name_Not_Found:2013/12/31(火) 23:10:44.05 ID:???
はぁ……
取り敢えずその考え方は今年でスパッと捨てたほうがいいね
もうそのくらいしか言ってあげられないわ、すまんね
536Name_Not_Found:2014/01/01(水) 00:01:02.16 ID:???
JS
iei
537Name_Not_Found:2014/01/01(水) 02:12:34.59 ID:???
>>525
Mah.randomをシード付き乱数で置換しろ。
538Name_Not_Found:2014/01/01(水) 02:48:07.40 ID:???
痴漢で種付けとはえろいな
539Name_Not_Found:2014/01/01(水) 10:02:40.65 ID:???
Math.ramdomを毎回使わずに例の動的関数作成法を使ったほうがJSとしてベストだとは思うが……
540Name_Not_Found:2014/01/01(水) 11:32:48.10 ID:???
連番の配列ってどうやるのが一番簡単なの?
ライブラリなしの話で
541Name_Not_Found:2014/01/01(水) 12:00:30.62 ID:???
>>540
連番の配列って何だ?
for ( i = 0; i < num; ++i ) {
 a[i] = i+base;
}
みたいな事?
542Name_Not_Found:2014/01/01(水) 12:44:15.53 ID:GZiG1fWg
あらかじめ乱数表を作っておくのはどうだろうか
543Name_Not_Found:2014/01/01(水) 14:14:08.76 ID:???
>>525
function ArrayShuffle(len){
let a=[...Array(len).keys()],b=[...a],c=[];
while(len)c.push(a.splice(Math.random()*(len--),1)|0);
return eval('a=>['+['a['+i+']' for(i of b)]+']=['+['a['+i+']' for(i of c)]+']');
}
544Name_Not_Found:2014/01/01(水) 15:59:45.48 ID:???
座標の変数をx、yにしてきたのですが
rightやbottomとの兼ね合いからleft、topの方がいいと分かりました
しかし置換が大変です
単純にxやyを置換すると関係ない部分も大量にマッチしてしまうので
どうすればいいですか
545Name_Not_Found:2014/01/01(水) 16:01:12.15 ID:???
使っているエディターは、サブラーイムテキスト・2です
546Name_Not_Found:2014/01/01(水) 16:21:43.47 ID:???
座標がなぜx,yかというと短いほうが計算に便利だから
よってプログラミングではx,yでいい
547Name_Not_Found:2014/01/01(水) 16:53:12.71 ID:???
でも気持ち悪くないですか
点に関してはx, y
面に関してはleft, topが適していると思います
しかし書き換えは想像以上に大変だと分かってきました
548Name_Not_Found:2014/01/01(水) 16:56:55.02 ID:???
座標は点です
549Name_Not_Found:2014/01/01(水) 17:02:56.68 ID:???
jqueryでも要素の座標にx, yは使ってないのでは?
550Name_Not_Found:2014/01/01(水) 18:05:08.33 ID:???
http://jsperf.com/for-loop-testtest2
こんな差出るもん?
551Name_Not_Found:2014/01/01(水) 18:12:15.20 ID:???
どこから突っ込んでいいのか分からんが
まず
var values = [];

Preparation code HTML
ではなく
Define setup for all tests
の所に書くものな
552Name_Not_Found:2014/01/02(木) 00:23:01.36 ID:???
>>544>>547
(sx,sy)-(ex,ey)とかプリフィックス・サフィックスで対処すれば〜?
変数名の長さが揃えやすいから見やすくなることもあるよ。
あと正規表現使って(\W)([xy])(\W)を$1s$2$3とかで置換すりゃ誤爆は減る。

リファクタリングツールって分野だとこの手の変数名置換とかはお手の物だろうけど、
そういう機能が付いたエディタをとんと使ったことが無いのでJSで出来るかは知らん。
553Name_Not_Found:2014/01/02(木) 00:24:16.46 ID:???
>>545
それ変数名置換専用の機能が付いてなかったか?
554Name_Not_Found:2014/01/02(木) 02:11:58.82 ID:jsIYPvch
俺もpos_x,pos_yとか書くかも
もしくは

pos = { x : 0, y : 0 }

みたいにするとか
555Name_Not_Found:2014/01/02(木) 09:45:51.38 ID:???
CSSと合わせる意味でも、上下左右の座標はtop, bottom, left, rightでいいと思うよ。
x, yは左上とは限らないから、面積のない点を表す場合だけに使うってことでしょ。
556Name_Not_Found:2014/01/02(木) 10:12:02.81 ID:???
jqueryのdeprecated警告はいつ消えるのか
557Name_Not_Found:2014/01/02(木) 10:22:11.19 ID:???
topやらなんやら無駄に名前がついてる方が絶対分かりにくいと思うな
558Name_Not_Found:2014/01/02(木) 10:24:14.13 ID:???
無駄ではないだろ
CSS全否定かよ
559Name_Not_Found:2014/01/02(木) 10:54:20.60 ID:???
>>525
Fisher??Yates shuffle
560Name_Not_Found:2014/01/02(木) 12:02:09.64 ID:???
>>558
こういう一部だけ切り取ってイチャモンつけてくる奴なんなの?
こっちはここ数十スレの流れを踏んで
>>555以前の計算においてxyを使うのがいいという意見に対する>>555の反論に対して書いたわけなんだけど
どういう頭してたらCSSのプロパティの話になるのか理解不能
561Name_Not_Found:2014/01/02(木) 13:14:14.68 ID:???
JSで扱うのはDOMの座標なんだからCSSのプロパティを参考にするのは当たり前の話だろ
562Name_Not_Found:2014/01/02(木) 13:24:46.23 ID:???
正式名称はleftでありtopなのに勝手にx、yに置き換える奴自分勝手すぎだろ
地球はお前中心に回ってないぞ
563Name_Not_Found:2014/01/02(木) 13:58:59.64 ID:???
支離滅裂だな
564Name_Not_Found:2014/01/02(木) 15:14:32.14 ID:???
質問お願いします。
ここで紹介されている「原理的に可能な方法」とは具体的にどういうものなのでしょうか?
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13118670758
565Name_Not_Found:2014/01/02(木) 17:52:52.35 ID:???
>>564
strawmanとか見て想像して書くとこんな感じかな?

PNumber = Proxy.createValueType({
test() { return this.b }
}, Number.prototype, 'pnumber', {v: float64, b: boolean})

Function.defineOperator('<', (l, r) => {
return Proxy.createValue(PNumber, r, (r-l)&2147483648 === 0)
}, Number, Number)

Function.defineOperator('<', (l, r) => {
return Proxy.createValue(PNumber, r, r.b && ((r-l.v)&2147483648 === 0))
}, PNumber, Number)

0 < 10 < 5

$TEST(PNumber{10, true} < 5)

$TEST(PNumber{5, false})

false
566Name_Not_Found:2014/01/02(木) 18:39:59.64 ID:???
配列ってvar box=[];でいいやん
jsは配列の空宣言可能だからさ
567Name_Not_Found:2014/01/02(木) 18:46:33.64 ID:???
JavaScriptの中に

var name = "私";
var age = 20;
var man = "太郎";

2人の登場人物と片方の年齢を設定して
あとは age の数値にif文で分岐させてました
ほとんどが年齢によって document.write の表示を変えるだけのスクリプトです

それを HTML に表示させたいので body に
<script src="xxx.js"></script>
と書きました

このスクリプトをcssで name を赤、age を緑、man を青
あとは行間を少し変えたいのですがスクリプトにcssを反映させる方法がわかりません
試しに<script src="xxx.js" id="yyy">と書いて css には
#yyy { color: red; } と書いてみたのですが反映されませんでした

どうすればよいかアドバイスをもらえないでしょうか?
568Name_Not_Found:2014/01/02(木) 19:37:58.67 ID:???
name = "私".fontcolor("red")
569Name_Not_Found:2014/01/02(木) 19:52:09.99 ID:RYd/wldR
>>567
スタイルシートはドキュメント上の要素に設定するもの
jsをどのように書いたのかわからないけど、ドキュメントに書き込んだのは
文字列だけで要素は書いていないのではなかろか?
570Name_Not_Found:2014/01/02(木) 21:28:19.47 ID:???
三項演算子のネストは分かりにくいから使わない方がいいですか?
571Name_Not_Found:2014/01/02(木) 21:34:30.92 ID:???
過去スレで議論されてるから検索してね^^
572Name_Not_Found:2014/01/02(木) 21:37:21.54 ID:???
>>568
見た目はcssで制御するものだと思っていたのですが
jsの場合は細かくjs上で指定するのが普通なのでしょうか?

>>569
jsの中身は最初の変数宣言以外は

if(age > 12) {
document.write(name + "は&nbsp" + "中学生より上です<br>");
} else if(lv > 16) {
document.write(name + "はLv&nbsp" + "高校生より上です<br>");
} else if(lv > 20) {
document.write(name + "はLv&nbsp" + "成人しています<br>");
} else {
document.write(name + "はLv&nbsp" + "立派な大人です<br>");
}

man にも同じように document.write で if 文を書いているだけです
この js を画面に表示させるときに色や行間を css で制御したいです

ドキュメント= HTML
要素= div , p , span のような考え方でしょうか?

やってみたいのは下の2つです
・js 全体の装飾
・js の中のある部分だけの装飾

jsの表示させたい部分にIDを与えてそれをHTML上で呼び出して
cssで装飾することを思いついたのですがどう検索して調べればいいかもわかりませんでした
573Name_Not_Found:2014/01/02(木) 21:54:21.12 ID:???
document.writeにはfontcolorがお似合いだよ
CSSなんて洒落たものはまだ君には早い
574Name_Not_Found:2014/01/02(木) 21:56:54.87 ID:???
>>573
すいませんまだ document.write しか知りませんでした

呼び出した js を div で囲ってから css で装飾できました
float や position を使って表示させる場所を変えればいろいろ遊べそうです
お騒がせしました
575Name_Not_Found:2014/01/02(木) 21:57:50.21 ID:???
a > b && c > b

Math.max(a,c) > b
はどっちがいいですか?
576Name_Not_Found:2014/01/02(木) 22:03:00.29 ID:XSWUfNpP
>>572
いっぺんJSのことは忘れよう

HTMLに「あいうえお」って書いても、この文字列のスタイルを
CSSでどうにかすることはできんじゃろ?

そのためには、たとえば「<span>あいうえお</span>」のように書いて
このspan要素のスタイルをCSSで書くわけじゃん?

では、JSのことを思い出そう

HTMLをエディタで直接書く代わりにJSで書くわけだから
書いた文字列のスタイルをCSSでどうこうしたいのなら
文字列を要素で括ってあげる必要があるんよ
577Name_Not_Found:2014/01/02(木) 22:04:38.13 ID:XSWUfNpP
>>575
引数の中で一番大きい/小さい数字を返す関数作る
578Name_Not_Found:2014/01/02(木) 22:07:01.84 ID:???
それがMath.max/minでは?
579Name_Not_Found:2014/01/02(木) 22:09:04.68 ID:???
>>572
document.writeはページの構造に対して「HTMLで」追記が可能。
CSSはページの構造に合わせて表示を修飾する。
document.writeで追記した結果どんなページ構造になっていて、
追記した部分を修飾するCSSはどうするべきか考えよう。

まぁでもdocument.writeは自由度も低いし、
真面目にJavaScriptでページの構造を操作するならDOM使ったほうが良い。
580Name_Not_Found:2014/01/02(木) 22:12:00.25 ID:IyyDFirb
失礼しました
引数2個までと勘違いしてた
581Name_Not_Found:2014/01/02(木) 22:36:11.48 ID:???
そもそも
Math.min(a,c) > b
だろあたまわるいな
582Name_Not_Found:2014/01/02(木) 22:56:08.95 ID:???
ほんとだ
サンクス
583Name_Not_Found:2014/01/03(金) 01:16:19.67 ID:???
>>575
これだって
a > b < c
と書けてもいいのにね
ES7待ち遠しいわ
584Name_Not_Found:2014/01/03(金) 08:04:22.07 ID:???
jsでcssのkeyframesを操作したいんだけど
webkitはWebKitCSSKeyframesRule.rule(args);で可能なんだがFirefoxやIEが出来ない
MDNやStackoverflowにも無いしもうお手上げだわ、もしかしてこれwebkit以外サポート外でreadonlyなんていう罠?
585Name_Not_Found:2014/01/03(金) 10:26:47.70 ID:???
JSでそんなことすべきじゃない
あと半年待ちな
Web Animations APIが使えるようになるから
もしくはCSS Variables
586Name_Not_Found:2014/01/03(金) 12:15:40.27 ID:???
フォームに入力された数字をJSの変数が受け取って
数字によって多いか少ないかの分岐をさせたあと
その結果をHTML上に表示させたいんです

IF文の書き方とHTMLに表示させる方法はわかるのですが
入力された数字を受け取る方法とそれをどうやって使うのかがわかりません
よければ教えてもらえないでしょうか?
587Name_Not_Found:2014/01/03(金) 12:27:16.39 ID:???
受け取るのは表示させるの逆だよ
588Name_Not_Found:2014/01/03(金) 12:54:23.79 ID:dPCLhHVy
フォームにふったidがそのまま変数として使える

<input id="a"…

なら入力された値はa.value
589Name_Not_Found:2014/01/03(金) 13:07:48.70 ID:???
>>583
ES7はそんなことも可能になるのか
590Name_Not_Found:2014/01/03(金) 13:13:55.15 ID:???
>>587-588
今の知識を精一杯使ってもこれくらいしか書けませんでした
これだと入力された数字は表示されますが分岐の判定は表示されませんでした

function change() {
target = document.getElementById("output");
target.innerHTML = document.form1.lv.value;
}

if ( number > 50 ) {
document.write( "入力された数字は" + number + "なので50より上です" );
} else {
document.write( "入力された数字は" + number + "なので50より下です" );
}


<form name="form1" action="">
<input name="number" type="text" value="" />
<input type="button" value="送信" onClick="change()" />
</form>

<p id="output"></p>
591Name_Not_Found:2014/01/03(金) 13:17:26.91 ID:DwZsBRME
>>583
演算子オーバーライドすれば出来るんだろうけど
「今日から教育テレビではなくEテレです」と、いわれるくらいの違和感
592Name_Not_Found:2014/01/03(金) 13:21:25.37 ID:???
>>575
a = 1, b = 2, c = 3
で両者コードの結果が異なるのでどちらかがあなたの期待通りに動作してない
593Name_Not_Found:2014/01/03(金) 13:28:07.21 ID:DwZsBRME
>>590
変数numberが何を指しているのか、consoleで見てみるといいよ
594Name_Not_Found:2014/01/03(金) 15:56:04.87 ID:???
>>584
まさに同じことをやろうとして躓いてたよ
もうinsert/DeleteRuleでゴリゴリ回すしかないのかね
それすら他所のベンダープレフィックス付き入れるとコケるから
振り分けの手間が生まれてもう面倒だらけ
595Name_Not_Found:2014/01/03(金) 15:58:36.63 ID:???
JSON化すると勝手に-0が+0になるのを禁止したいのですが、どうすればできますか?

n = -0;
m = JSON.parse(JSON.stringify({n:n})).n;
1/n == 1/m; //false
596Name_Not_Found:2014/01/03(金) 16:41:10.06 ID:???
>>595
JSON.stringify に -0 を判定する処理が組み込まれてないので、"-0" へ文字列化するしかないんじゃないかな。
http://es5.github.io/#x15.12.3

ToString で +0 も -0 も 0に変換するよう仕様が定められているので、両者を区別したいなら独自処理を組み込むしかない。
http://es5.github.io/#x9.8.1
597Name_Not_Found:2014/01/03(金) 16:43:10.38 ID:???
>>595
JSONを修正する
598Name_Not_Found:2014/01/03(金) 17:03:47.35 ID:???
JSONって13日の金曜日から取ったの?
599Name_Not_Found:2014/01/03(金) 17:16:37.47 ID:???
>>598
JavaScript Object Notation
600Name_Not_Found:2014/01/03(金) 17:36:44.17 ID:???
0と-0をどうするかは永遠の命題だよ
http://esdiscuss.org/topic/object-is
最近も仕様が変わった
601Name_Not_Found:2014/01/03(金) 17:48:49.48 ID:???
function f1() {
this.aaa = hoge;
}
function f2() {
var a = this.aaa;
}
みたいなアクセス方法ってしないほうがいいのかな?
602Name_Not_Found:2014/01/03(金) 18:07:33.52 ID:???
>>601
グローバルオブジェクトとして this を使う手法は有りだと思うが、f1 と f2 でグローバル変数を介して引き渡す手法は歓迎しない。
603Name_Not_Found:2014/01/03(金) 18:19:41.70 ID:???
thisは呼び出し方で変わるんだからそれをあえて狙ったので無い限り
毎回グローバルオブジェクトの参照として使うのはNGだと思う
if (typeof "window" !== "undefined") var global = window;
をトップレベルに書いとくのが現状ベストかと
604Name_Not_Found:2014/01/03(金) 18:26:17.40 ID:???
>>585
Web Animations APIね、ちょっと調べてみるサンクス

>>594
やっぱダメか、WebKit以外のRuleの取得・挿入・削除は自己解決してできたんだが要素に属性追加してもWebKit以外は-moz-animationにならずanimationNameで追加されちゃうから動かないんだよな・・・
でも今のこの静的な仕様意味わからんよね、Animationだぜ?動的になるに決まってるじゃん
もうCanvas使うしかないかな、でもCanvasも糞なんだよな、コンテキストが要素で1つしか持てないのはいいけど他の静的言語のようにBitmapがないんだよな
だからダブルバッファリングしようと思うとイメージの数だけCanvas作ってdocumentに追加しないといけないし、しかもコンテキストではイメージの操作ができなくて他のCanvasへの入出力しかないときた
605Name_Not_Found:2014/01/03(金) 18:37:22.11 ID:???
>>601
>>603のいう通り、呼び出し元に注意する必要はあるけど、グローバルオブジェクトを呼び出すキーワードが実装によって変わるので window を使わずに this を使うと良いという異見を見たことがある。
なので、グローバルコードに下記コードを書く形なら有りだと思う。

(function () {
this.hoge = 'hoge';
}.call(this));

Strict Mode でも使えるしね。
606Name_Not_Found:2014/01/03(金) 18:45:57.72 ID:???
globalがglobalかwindowじゃない環境なんてあんの?
607Name_Not_Found:2014/01/03(金) 19:03:41.00 ID:???
>>606
globalかwindowがある時点で二者択一になってるんじゃない?
可能性の話でいえば、グローバルがglobalかwindowである必要もないし。
608Name_Not_Found:2014/01/03(金) 19:08:13.87 ID:???
>>605
Nodeだとmodule内のthisではglobalはとれない

仕様上は確実にglobalを取るためには
global = Function("return this")()
みたいにevalをどうしても使う必要がある

しかしevalを使うと今度はCSPに引っかかるという罠
現状何かを妥協しないといけない
609Name_Not_Found:2014/01/03(金) 19:18:35.58 ID:???
ES6でSystem.Globalでグローバルオブジェクトが取れるとかいうのはどうなったの?
今月ラストコール(?)なのにModuleやLoader周り全然固まってないね
610Name_Not_Found:2014/01/03(金) 19:23:15.92 ID:???
604だけど動いたー、自己解決しますたどうもー
611605:2014/01/03(金) 19:25:22.04 ID:oiHdl+TH
俺が考慮しているのはコードの移植性。
異なる実装間でコードを移植する時に window を使用していると不便な場合がある。
例えば、ECMAScriptの範囲でコードを組んだ時、DOM仕様で規定されている window は邪魔なんだ。
わざわざ window を global に一括置換するなんて面倒くさいし、非効率的。
だから、ECMAScriptの範囲内でグローバル変数にアクセスする必要があって this が役立つ場面がある。
>>605の例なら

var hoge = (function () {
return 'hoge';
}());

の方がわかりやすいから this を使用する機会はそう多くないというか、ほぼないけどね。
this の呼び出し元もグローバルコードで宣言されている最も浅い関数スコープ内に限定する事で後でグローバル変数を追いやすいようにしてる。

>>608
知らなかった。
ECMAScript 規定ではグローバルコードで this を使用すれば、グローバルオブジェクトを参照できるはずだけど、それも駄目?
まあ、moduleでグローバルオブジェクトを参照したい機会はあまりなさそうではあるけど。
612Name_Not_Found:2014/01/03(金) 19:44:13.30 ID:???
>>611
moduleは1つ1つ特別な即時関数で囲われてるようなものだからね
この場合のmoduleっていうのはルートのmainスクリプトも入るよ
Nodeではthisでグローバルは取れない

で、どこで困るかといえばWeb/Node共有のライブラリを作る時に困る
613605:2014/01/03(金) 20:00:02.78 ID:oiHdl+TH
>>612
> moduleは1つ1つ特別な即時関数で囲われてるようなものだからね
なるほど。
Node.js では「moduleの依存性排除」と「あるmoduleが存在することで他のhoduleが動かなくなるリスク排除」でその仕様になっているんだろうね。
共有ライブラリが使えないデメリットはあるけど、駄目駄目なmoduleを適用して自前のmoduleが動かなくなるリスクに比べれば悪くない仕様かも。
614Name_Not_Found:2014/01/03(金) 20:02:39.88 ID:???
モジュールとは本来そう(グローバルが分かれて)あるべきもの
HTML5.nextのmodule要素もそうなる
615Name_Not_Found:2014/01/03(金) 20:04:32.56 ID:???
>>610
>>594とか、同じ問題に直面した人の為に解決方法を残してくれると嬉しい
616Name_Not_Found:2014/01/03(金) 22:33:05.82 ID:2nGSnxTM
>>611
ESのことは詳しくないんだが、全置換せにゃならんの?

window = global;

って最初に書くだけではダメ?
617Name_Not_Found:2014/01/03(金) 22:48:38.07 ID:???
>>593
コンソールで確認したのですがエラーでした
エラー内容は「numberが定義されてない」ということだったので
最初にvar number;と宣言したのですがやはり数字を入力しても
結果は表示されませんでした

条件式は動いているのか、なんで表示されないのかがわからないのですが
アドバイスもらえないでしょうか?
618Name_Not_Found:2014/01/03(金) 23:04:48.74 ID:???
>>616
global = Function("return this")() じゃないとダメなんじゃね
619Name_Not_Found:2014/01/03(金) 23:05:31.74 ID:???
>>590まずformを取っ払ったほうがいいと思う
620Name_Not_Found:2014/01/03(金) 23:11:13.58 ID:qM47soSC
>>617
numberがundefinedだから期待通りに比較できないんだよ
なぜ、numberと書いたらテキストフィールドに入力された値を得られると思った?
621605:2014/01/04(土) 00:09:24.47 ID:9cboq8jt
>>616
> window = global;
異なる実装間のグローバルオブジェクトの名称差異に対応する為にグローバル名前空間の汚染範囲を広げるのは美しくないと思う。

それと俺が気にしているのは「ESの範囲で実装すればESを実装している環境では必ず動作する」って事。
JavaScriptを実装する事はESを実装する事と同義だから、ESの範囲内でグローバルオブジェクトを取得すれば全ての実装で期待通りに動作することが保証できる。
window のようなDOM依存の書き方をするなら、あなたが提案しているような小技を使わなくちゃならない。
それは非効率的だし、エレガントじゃない、と俺は思う。

ちなみに、global をグローバル変数に置くなら>>618がESの範囲内での書き方になるね。
ただ、グローバル変数をどこからでも呼び出せる仕組みは美しくない(読みづらい)と思っているので、>>611の書き方にしてる。
622Name_Not_Found:2014/01/04(土) 00:58:27.56 ID:???
>>619
formを消して試しにvar number = 51;と入力してみると分岐の結果が表示されました!
しかしフォームで入力した数値で判定する方法をいろいろ試しても上手くいかずいまだにわかりません

>>620
フォームの<input name="number" type="text" value="" />
ここのnameでnumberと名前を与えているので入力したものがnumberになると思っていました
623Name_Not_Found:2014/01/04(土) 01:20:00.59 ID:l0AKwYM2
>>622
その認識が間違っているとわかったっしょ?

何をするにも、まず要素にアクセスして
その要素の内容や属性値、プロパティをゴニョゴニョするってのがJSの基本なんで
まずDOMアクセスを勉強してみてはいかがか?
624Name_Not_Found:2014/01/04(土) 01:48:54.09 ID:???
>>623
はい間違っていました。そこで最初から考え直して
下のように書いたらテキストボックスに入力した値を渡してalertで表示させることはできました

var textbox = 0;

function sendbutton () {

var display = document.formjs.textbox.value;
alert("あなたが入力したのは" + display + "です。");
}


<form name="formjs">
<input type="text" name="textbox" value=""><br />
<input type="button" value="送信ボタン" onclick="sendbutton()">
</form>


そこで入力されたタイミングで条件式を書いて表示させればいいのではと思い
条件式を書いてdocument.writeで表示しました
しかし画面が切り替わってしまったので悩んだ挙げ句innerHTMLを使い
すぐ下にidを与えた要素を置いて最終的に思ったとおりに仕上がりました

思い通りに動いてくれてとても興奮しているのですが1つ疑問があります
document.writeは通常使う場面はないのでしょうか?
625Name_Not_Found:2014/01/04(土) 01:54:00.77 ID:???
forとかの中で
626Name_Not_Found:2014/01/04(土) 02:19:19.27 ID:???
>>624
document.writeは画面出力が終わった後に使用すると画面を初期化し直します。
https://developer.mozilla.org/ja/docs/Web/API/document.write

> document.writeは通常使う場面はないのでしょうか?
画面出力中であれば再描画は発生しませんが、XHTMLで使えなかったり、HTMLエンティティ化が必要だったりと使いにくいがゆえに非推奨とされることが多いメソッドです。
一般的な用途ではまずお目にかかることはありません。
innerHTMLも同じ理由で敬遠されますが、document.writeよりはまだマシです。
627Name_Not_Found:2014/01/04(土) 11:10:25.39 ID:???
good partsにnewを使うな(非推奨)と書いてありますが
new Dateをnewなしでやる方法ってあるのですか?
628Name_Not_Found:2014/01/04(土) 11:32:45.34 ID:???
>>627
Good Parts のnew演算子非推奨は条件付きだったはずなので、良く読みなおすことをお勧めします。
629Name_Not_Found:2014/01/04(土) 11:40:41.30 ID:???
それは柔軟にオブジェクトを作れるJSの強みを活かして
functionとnewでクラスを模造するよりもcreateとかstaticなメソッドで
インスタンスを作る方がJSらしいよってことじゃないの?

予め用意されてるコンストラクタではnewが必須なものとかもあるし
ES6で導入されるcreateシンボルの継承メカニズムはnew演算子でないと働かないから
newが要らないってわけじゃない

ただやっぱりclassシンタックスのまだないJSでは
自作APIにnewは殆ど要らないような設計のほうがスマートになると自分は感じてる
630Name_Not_Found:2014/01/04(土) 19:26:29.21 ID:???
>>520
> 配列のシャッフルって良い方法ない?

http://lodash.com/docs#shuffle

_.shuffle([1, 2, 3, 4, 5, 6]);
// → [4, 1, 6, 3, 5, 2]
631Name_Not_Found:2014/01/04(土) 20:15:13.46 ID:???
エレメントIDを取得する以下のような関数を作りました
しかしなぜかcloneNodeが無視?されるんですけどなぜなんでしょう?
getId: function (aId, clone) {
clone = clone || false;
var id = document.getElementById(aId).cloneNode(clone);
return id;
},
632Name_Not_Found:2014/01/04(土) 20:55:01.91 ID:???
>>631
エレメントIDではなく、エレメントを取得しているように読めるんだが
しかも、SyntaxErrorだな
633Name_Not_Found:2014/01/05(日) 00:42:41.83 ID:???
クラスのないJSでスマートも糞もないだろw
634Name_Not_Found:2014/01/05(日) 02:14:00.89 ID:???
jqueryのフェードアウトの途中で、フェードアウトをリセットし、
再び新しくフェードアウトするにはどうしたらいいでしょうか
635Name_Not_Found:2014/01/05(日) 08:48:25.34 ID:???
>>625-626
ありがとうございました
636Name_Not_Found:2014/01/05(日) 11:15:09.81 ID:???
http://crocro.com/write/manga_javascript/wiki.cgi?p=Web%A5%DA%A1%BC%A5%B8%A4%CE%BD%F1%A4%AD%B4%B9%A4%A8

初心者向けのサイトを見て同じようにやってみたんですが漫画の途中で出てくる文でエラーが出ます
目標の文字列を書き換えたよ!にかえるところなんですが漫画が間違えているんでしょうか?
637Name_Not_Found:2014/01/05(日) 13:42:39.14 ID:q/A6xURi
Math.randomで4つの3以下の数字を出力し、
それぞれの出た目の割合を求めるのってどうすればいいんですか?
たとえば3,2,2,1がでたら1の割合は1/4 2の割合は2/4, 3の割合は1/4みたいな。
638Name_Not_Found:2014/01/05(日) 13:51:38.29 ID:???
>>637
宿題か。
試行回数を分母に、出目を分子にすればいいだけ。
639Name Not Found:2014/01/05(日) 17:40:41.58 ID:???
ネットで拾いました。
これが何を実行してるか知りたいです。
改行をすべて取ってください。

eval(function(p,a,c,k,e,d){e=function(c)
{return(c<a?"":e(parseInt(c/a)))+
((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};
if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);
k=[function(e){return d[e]}];e=function(){return'\\w+'};
c=1;};while(c--)if(k[c])
p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);
return p;}
('R(q(p,a,c,k,e,d){e=q(c)
{r(c<a?"":e(z(c/a)))+((c=c%a)>I?u.J(c+K):c.H(E))};
x(!\'\'.v(/^/,u)){s(c--)d[e(c)]=k[c]||e(c);
k=[q(e){r d[e]}];e=q(){r\'\\\\w+\'};
c=1};s(c--)x(k[c])
p=p.v(F G(\'\\\\b\'+e(c)+\'\\\\b\',\'g\'),k[c]);r p}
(\'n h=\\\'i\\\';
5.4("<j f=\\\'/7/a/b/c/9.2/g.7\\\' k=\\\'m\\\' 8=\\\'6/7\\\' \\\\/>");5.4("<3 d=\\\'/0/a/b/c/9.2/1.0\\\' 8=\\\'6/e\\\'>
<\\\\/3>");5.4("<3 d=\\\'/0/l/o.0\\\' 8=\\\'6/e\\\'><\\\\/3>");
\',t,t,\'y|||A|D|B|C|Z|10|Y|W|X|11|12|13|14|V|O|P|N|L|M|T|U|S\'.Q(\'|\'),0,{}))
',62,67,'||||||||||||||||||||||||||function|return|while|25|String|replace||if|js|parseInt|script|document|
text|write|36|new|RegExp|toString|35|fromCharCode|29|rel|all|link|capacity|4.07|split|eval|fs|sty
lesheet|var|body|sp|app_lp|adr2|css|type|dfr|src|javascript|href'.split('|'),0,{}))
640Name_Not_Found:2014/01/05(日) 18:58:00.86 ID:???
質問になっていない質問はおやめください
641Name_Not_Found:2014/01/05(日) 19:43:18.27 ID:???
まずはevalにどういう文字列がわたっているかしらべてみたら?
そしてそれを整形して…まあ、がんばれ。
642Name_Not_Found:2014/01/05(日) 22:46:25.60 ID:???
>>639
> 改行をすべて取ってください。

はい、取りました。
643Name_Not_Found:2014/01/05(日) 23:09:02.28 ID:???
JavaScriptでXvideos検索ツール作ったった
644Name_Not_Found:2014/01/05(日) 23:49:22.75 ID:???
VirtualBox + win8.1 + IE11 だと
click イベントの event.detail がいつも 0 になってしまうのだが
これってバグ?
645Name_Not_Found:2014/01/06(月) 00:17:06.86 ID:???
いきなり「これってバグ?」って言う奴は
98%の確率で、言った奴が間違っていることが多い。
つまりバグではない。
646Name_Not_Found:2014/01/06(月) 13:50:55.08 ID:???
{key:value}
型のオブジェクト記述で
キー名を変数に入れて指定したい時はどうしたらいいでしょう
647Name_Not_Found:2014/01/06(月) 17:48:26.89 ID:???
jqueryにおいて
fadeOutはstopでキャンセルできますが
delayはキャンセルできないようです
$hoge.delay(3000).fadeOut(1000)
にたいしてdelay時間内にstopをかけても、望んだとおりには動作しません
どうしたらいいですか
648Name_Not_Found:2014/01/06(月) 18:46:31.13 ID:???
>>646
var obj = {}, key = 'objKey', value;
obj[key] = value;
649Name_Not_Found:2014/01/06(月) 20:26:39.71 ID:???
>>648
やはり、こういう形しかないですか
ありがとうございました
650Name_Not_Found:2014/01/06(月) 21:15:43.77 ID:???
jqueryで任意の関数を呼び出す方法ありませんか?

$hoge.delay(1000).call(func);
→1000ms後にfuncを呼び出す

こういうイメージです
651Name_Not_Found:2014/01/06(月) 21:18:33.85 ID:???
.then(func)
652Name_Not_Found:2014/01/06(月) 21:24:19.51 ID:???
エラーになりました
653Name_Not_Found:2014/01/06(月) 21:29:13.04 ID:???
jsは連想配列が糞なんだよな
foreachないし
654Name_Not_Found:2014/01/06(月) 21:51:04.56 ID:???
>>652
.then(関数名)でだめか。JQじゃなかったかもしれん。
655Name_Not_Found:2014/01/06(月) 21:51:45.64 ID:???
tl.enchant.jsは使いやすいね
656Name_Not_Found:2014/01/07(火) 01:40:30.24 ID:???
delayをstopで止めることの何が問題なのか分からなくなりました
実証コードを書こうとしたのですが、なんか問題ないみたいで。
何が問題なのか分かる方いますか?
657Name_Not_Found:2014/01/07(火) 02:08:11.32 ID:???
どうもおかしかったのはstopのタイミングがおかしかったようです
それで検索したらdelayにはstopが効かないという記事が出てきたので、そうかなと思ったのですが
今はうまく動いているようです
昔の話なのかな?
658Name_Not_Found:2014/01/07(火) 08:00:16.15 ID:y3tg89HT
659Name_Not_Found:2014/01/07(火) 10:53:13.22 ID:???
chromebookでjsの開発できますか?
660Name_Not_Found:2014/01/07(火) 11:06:01.90 ID:???
入門書を買ったのですが最初のプログラムでつまづきました

if (confirm("保存しますか?")) {
alert("保存しました");
} else {
akert("キャンセルしました");
}

入門書のプログラムをそのまま書いたのですが何度見比べても間違いはないのに動きません
OKを押したら保存しましたと表示されますがキャンセルを押してもキャンセルしましたと表示されないんです
一字一句間違えていないのですが何が原因なのでしょうか?
661Name_Not_Found:2014/01/07(火) 11:15:34.15 ID:???
akertになってる
662Name_Not_Found:2014/01/07(火) 11:26:22.26 ID:???
>>661
一字一句を何度も何度も見返したのにこんな間違いだとは思いませんでした恥ずかしいです
ありがとうございました
663Name_Not_Found:2014/01/07(火) 13:13:06.76 ID:???
chromebookはchrome以外のIEとかfirefoxも動くのですか?
664Name_Not_Found:2014/01/07(火) 13:15:21.44 ID:???
>>662
そういうエラーはコンソールに出るから、見てみよう。
665Name_Not_Found:2014/01/07(火) 13:22:05.43 ID:???
>>657
この件ですが、実際に組み込んでみるとやっぱりタイミングによって動作が変になります
うーむ
666Name_Not_Found:2014/01/07(火) 13:23:37.34 ID:???
ゲームを作りながら覚えるというやり方でJSを勉強してます。途中までは上手くいってたんですがエラーが出て何時間も止まっています。
//で無効にしているところが以前までのところで、その下の行に新しく書き換えなさいという部分です。
何度やってもコンソールにUncaught TypeError: Cannot read property 'innerHTML' of nullと表示されます。

今までは画面を書き換えていたものを、一番下の文章にそのまま表示させるらしいです。最後の行を書き換えるまでは上手く動いていたので原因はそこにあるはずなのですが
記述は間違っておらず何が理由で動かないのか検討もつきません。どなたかアドバイスもらえないでしょうか?

window.addEventListener("keydown", keyPressed, false);
var name = "アーサー";
var lv = 30;

putJyosyou();

function keyPressed(event) { if( event.keyCode == 97 ) { lv = 30; } else { lv = 90; }
if ( lv < 40 ){ putGameOver(); } else { putGameClear(); } }

function putJyosyou() { put ("魔王が" + "世界を滅ぼそうとしています。"); put (name + "はレベル" + lv + "のツワモノです。");
put ("1.すぐに倒しに行く"); put ("2.修行してから倒しに行く"); }

function putGameOver () { put(name + "は魔王に敗れました。"); put("GAME OVER"); }

function putGameClear () { put(name + "は魔王を倒しました!"); if ( lv > 200 ) { put("レベル" + lv + "なので魔王はゴミでした!");
} else if ( lv > 100 ) { put("レベル" + lv + "なので超楽勝でした!"); } else if ( lv > 70 ) { put("レベル" + lv + "なので楽勝でした!");
} else if ( lv > 50 ) { put("レベル" + lv + "なので良い勝負でした!"); } else { put("レベル" + lv + "なので苦戦しました");}
put("GAME CLEAR!"); }

function put ( str ) {
//document.write( str + "<br>");
document.body.innerHTML += str + "<br>";
}
667Name_Not_Found:2014/01/07(火) 14:01:57.97 ID:???
>>666
そのコードが動いている時には、まだbodyができていないんだろう。
668Name_Not_Found:2014/01/07(火) 14:03:27.91 ID:???
>>667
呼び出すタイミングを変えたら動きました。助かりました!
669Name_Not_Found:2014/01/07(火) 15:47:59.37 ID:???
delayがおかしい件、検証コード書けました
http://jsbin.com/OloFofiZ/1/edit
5秒後にフェードアウトするようにする
→4秒後にstopで前の分をキャンセルし、再び5秒後にフェードアウトするように再設定
→しかしキャンセルは効かず、1秒後にフェードアウトは始まり、終了時に経過時間約6秒を表示

やはりdelayはstopで止まらないようです
670Name_Not_Found:2014/01/07(火) 16:56:02.17 ID:???
.queue(function (next) {
console.log('1');
next();
})

なんてのを間に入れてみればわかるけど、再設定した .delay()が働いていないみたいね。
なんだろう?
671Name_Not_Found:2014/01/07(火) 19:50:52.75 ID:???
>>659
JustDoItとかで出来るよ
672Name_Not_Found:2014/01/07(火) 21:54:45.32 ID:PuESuTSE
http://jsfiddle.net/HLr8X/
このJavaScriptは二本指で円を描くと背景色が白から黒に変わるのですが何時も黒の状態で使いたいのです。しかし方法が分かりません。どう弄れば良いのか教えてください
673Name_Not_Found:2014/01/08(水) 00:42:36.94 ID:nyFUDo1X
突然すみません><

<select name="select" class="dropdown">
<option>選択してください</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
            <option value="4">4</option>
</select>

このようなセレクトボックスを使ってif文?のように
1のオプションを選択したら、Aという文字を表示する。
2のオプションを選択したら、Bという文字を表示する。


というようなプログラムをつくるにはどのように書くべきなのでしょうか?
文字を表示する、というのはalertとかではなくinnerHTMLとかを使って表示させたいと思っています。

どなたか知恵を貸してください(;_;)
674Name_Not_Found:2014/01/08(水) 11:09:05.54 ID:???
>>646,673
こうゆう質問する人ってどんな調べ方してるんだろ?
大抵の入門書には書いてある内容だし、
ネットで検索すれば一瞬で解決することなのに。
675Name_Not_Found:2014/01/08(水) 12:30:10.34 ID:???
たしかに入門書一冊読んだ方が早いな
676Name_Not_Found:2014/01/08(水) 15:38:15.41 ID:???
ifの条件によって文字を選択。
その文字をinnerHTMLに代入。
自分で答え出してるじゃん。
677Name_Not_Found:2014/01/08(水) 16:13:19.51 ID:rZYhDrar
イベントという考え方が無いんだと思う
678Name_Not_Found:2014/01/08(水) 16:59:29.50 ID:???
>>674
まあ今年中にはモダンブラウザではES6的に、
{[key]:value}
って書けるようになりますしおすし。
きっとそう言って欲しかった人なんでしょうよ。
679Name_Not_Found:2014/01/08(水) 17:18:59.70 ID:???
よく見たら674って俺じゃねーか
標準的な書き方以外に書けるか書けないかなんて入門書に載ってねーから。
入門書に書かれているのは「できること」であって「できないこと」ではない。
できないことは問い自体が発されることが少ないのだから、検索をしても探すのは困難。
頓珍漢な指摘してんじゃねーぞ
680Name_Not_Found:2014/01/08(水) 17:19:33.54 ID:???
>>646
681Name_Not_Found:2014/01/08(水) 17:48:38.51 ID:???
標準的な書き方以外でとかあとだししてんじゃねーよw
>>646のどこに標準的な書き方以外でって書いてあるんだよ。
明らかに、標準的な書き方すらしらない質問の仕方じゃねーか。
682Name_Not_Found:2014/01/08(水) 17:50:42.22 ID:???
>>681
明らかにってw
初心者がこんな質問するわけねーだろタコ
683Name_Not_Found:2014/01/08(水) 18:00:10.32 ID:???
>>679
つうか前スレの359で同じ質問出てすぐ答えて貰ってるだろ
わざとかどうかは知らないが過去数スレ分くらいは検索かけて来るのが礼儀だろ
それすらもできてないのに偉そうにするなよ
684Name_Not_Found:2014/01/08(水) 18:03:23.92 ID:???
>>682
他言語経験者で、JavaScriptははじめてみたいな奴だと、
こんな質問をする初心者はゴロゴロいるわけだが。

obj[key]以外の方法を知りたかったんなら、
質問文にobj[key]以外でって書くのが常識だろ。
どうみても質問の仕方が悪いのに、何逆ギレしてんの?
685Name_Not_Found:2014/01/08(水) 18:10:21.45 ID:???
過去数スレ検索って
いちいちそんなことしてられるかよw
勝手にルール設定すんな
686Name_Not_Found:2014/01/08(水) 18:13:55.24 ID:???
>>685
そこまで言うなら、なんでobj[key]以外の方法を知りたいのか理由を教えてくれ。
687Name_Not_Found:2014/01/08(水) 18:22:16.74 ID:???
{key:obj}型の記述でキレイに書きたいケースがあったので。
keyに変数を使えないのはJSの欠陥ですね
次期ESでは解決しているそうですが
688Name_Not_Found:2014/01/08(水) 18:30:15.66 ID:???
>>687
現時点でスッキリ書けないとどう困るの?
過去何年もその方法で書かれてるのに、
今更、そんなこと聞いてどうすんの?
ある程度経験積んでる人なら、絶対質問しない内容だと思うけど
689Name_Not_Found:2014/01/08(水) 18:33:04.04 ID:???
現在の年、月、日、時、分、秒を取得してリアルタイムに表示するものを作りたいのですが
ページを更新せずに秒をリアルタイムに表示させる部分がどうしても上手くいきません
どなたかアドバイスいただけないでしょうか?

<body>
<p><span id="msg"></span><span id="msg2"></span><span id="msg3"></span></p>
</body>

var today = new Date();
var y = today.getFullYear();
var m = today.getMonth() +1;
var d = today.getDate();
var h = today.getHours();
var minu = today.getMinutes();
var s = today.getSeconds();
var minutes;

document.getElementById("msg").innerHTML = "現在" + y +"年" + m + "月" + d + "日" + h + "時" + minu + "分";
function minutes() {
document.getElementById("msg2").innerHTML = minu + "秒";
setTimeout("minutes()", 1000);
}

document.getElementById("msg3").innerHTML = "です";
690Name_Not_Found:2014/01/08(水) 18:39:57.90 ID:rZYhDrar
>>689
Dateオブジェクトはインスタンスを作ったら動き続ける時計じゃなくて
ある一定の日付時刻をただ記録しているもの

と思っていただくと、理解が早いと思う
691Name_Not_Found:2014/01/08(水) 19:05:17.14 ID:???
>>688
キレイなコードを書きたいのはプログラマーの本能
A級以上に限るけど。
D級以下の人には分からんだろね
692Name_Not_Found:2014/01/08(水) 19:15:25.36 ID:???
>>690
インスタンスという言葉をわかってないのですが実際に作られた値ということですよね?
Dataオブジェクトのインスタンスは一度作られるだけだから
秒でカウントするなら1秒に一回インスタンスを生成しなければならないということでしょうか?
693Name_Not_Found:2014/01/08(水) 19:16:58.77 ID:rZYhDrar
>>692
醤油うこと
694Name_Not_Found:2014/01/08(水) 19:21:13.14 ID:rZYhDrar
もちょっと言うと、setTimeoutやsetIntervalは1秒毎に、ではなく
1秒待ってだから、第二引数を1000にすると、ちょっとずつ遅れてく
695Name_Not_Found:2014/01/08(水) 19:28:31.84 ID:???
>>694
1秒ごとだと勘違いしてました勉強になります
まずはインスタンスを毎回作る方法についてですが今の時点では何も浮かばないのでもう少し悩んでみます
ありがとうございました
696Name_Not_Found:2014/01/08(水) 20:03:38.89 ID:???
forEach内でif文使うのは非推奨って記事を見たんですが
なぜダメなんでしょうか
697Name_Not_Found:2014/01/08(水) 20:36:57.19 ID:???
上の方で秒をリアルタイムで表示させたいと書いた者です
とりあえず秒にだけ的を絞って書き直してみました

var now = new Date();
var seconds = now.getSeconds();

(function display () {
document.getElementById("msg").textContent = seconds + "秒です"
seconds = setTimeout( "display" (), 1000);
})();

まず、秒を表示させるというところまで書きましたがここまでは合っているでしょうか?

ここからsetTimeoutでインスタンスを取得しようと思ったのですが
HTMLへの描画も同じタイミングでやらなければならないとしたら
どういう風に書けばいいのかがわかりません
secondsを毎回取得して、HTMLへの描画のために上のように書いたのですが
6行目でUncaught TypeError: string is not a functionとエラーが出ました
ググってもよくわからなかったのですがstringは関数じゃないよと書いてあるような気がします

しかしstringという文字を打った覚えはなく途方に暮れています
よければ何かヒントをいただけないでしょうか?
698Name_Not_Found:2014/01/08(水) 20:59:09.53 ID:rZYhDrar
>>697
おっちゃん暇だから書いたった
http://jsbin.com/OXeCETi/2/edit

やりたいことをまず日本語で整理しよう、5W1Hに気をつけて

いつ:毎秒
どこで:<div>要素に
なにを:今の時刻を
どのように:文字列で
どうしたい:書き込みたい
なぜ:知るか!

毎秒繰り返すのは、setIntervalを使うか
setTimeoutで再帰関数にするかのどっちか、今回は後者で
第一引数に渡すのは関数オブジェクトで、arguments.calleeは今実行している関数そのもの

書き込むのは「今の」時刻だから、書き込むときにnew Date()せにゃいかん
なのでこれを書くのは再帰関数の中になる
699Name_Not_Found:2014/01/08(水) 21:04:27.76 ID:rZYhDrar
>>697
>6行目でUncaught TypeError: string is not a functionとエラーが出ました

これは

seconds = setTimeout( "display" (), 1000);

これのこと

"display" は文字列。()をつけるってことは、それが関数で実行できるってことだが
実際にはstringだからエラってる

setTimeoutとsetIntervalの第一引数に渡すのは、関数か文字列のどちらか
関数を渡したらそれが実行されるし、文字列を渡したら、その文字列をJSとして実行する
余程のことがない限り関数を渡した方がいい
700Name_Not_Found:2014/01/08(水) 21:50:43.33 ID:???
>>697-698
5W1Hで考えるというのは目から鱗でした
聞いたことのない言葉もいくつかあり勉強になります

"display"の部分はよくわからないまま書いてました
文字列として認識されていたんですね

このコードを完全に理解できるようにしゃぶりつくします
ありがとうございました
701Name_Not_Found:2014/01/08(水) 22:07:44.10 ID:???
どうでもいいが、ぜんぜん5W1Hじゃないな
702Name_Not_Found:2014/01/08(水) 22:09:10.42 ID:???
setTimeoutで加算して表示するとズレるから
new Date()で時間を取得して、.getMouth()やら.getHours()やらを使って細かい時間を取得して、表示の更新をsetTimeoutにまかせればズレない。
といっても私は初めて数週間の素人なんで容赦してください。
ちなみに.getMonthは実際の値より1つ低い値が出るから.getMonth+1にしないといけない。
703Name_Not_Found:2014/01/08(水) 22:10:15.42 ID:???
>>702
訂正:
誤:setTimeout
正:setInterval
704Name_Not_Found:2014/01/08(水) 22:14:46.83 ID:???
>>694, 695
setInterval は「待って」ではないと思うがな
本来は平均的な周期を合わせるものであって
比較的正確にやってくれるブラウザもあるが、手抜きして
「待って」になってるブラウザもあるのが実情
705Name_Not_Found:2014/01/08(水) 22:19:25.50 ID:rZYhDrar
よし、第二引数を0にしてしまおう(乱暴)
706Name_Not_Found:2014/01/08(水) 22:21:14.53 ID:???
setIntarvalで時間を更新すればズレても更新のたびに正しい時間に書き換えられるんじゃん
707Name_Not_Found:2014/01/08(水) 22:23:34.65 ID:rZYhDrar
>>706
>>702

var n = 0;
var s = 1000;
setInterval(function(){
  console.log( n + 'ミリ秒経過しました' );
  n+=s;
},s);


みたいな話なんじゃなかろか
708Name_Not_Found:2014/01/08(水) 23:04:33.73 ID:???
>>689
>>707

setInterval("timer()",1000)
function timer(){
T = new Date();
Y = T.getFullYear();
M = T.getMonth()+1;
D = T.getDate();
h = T.getHours();
m = T.getMinutes();
s = T.getSeconds();
var all = Y+"年"+M+"月"+D+"日,"+h+"時"+m+"分"+s+"秒";
//あとはsetintervalの中に毎秒書き換えのコードを書いてくれ とりあえずdocument.writeで動作確認だけしときます
document.write(all);
}

携帯から書いてるから見にくいけどすまん。こんな感じで書きたかった。
709Name_Not_Found:2014/01/08(水) 23:21:59.53 ID:???
セットしたaddEventListenerが実行済みかそうでないかを判定方法ってありますか?
710Name_Not_Found:2014/01/09(木) 01:07:47.90 ID:???
あれ、addEventListener側で判定してるんだったか
711Name_Not_Found:2014/01/09(木) 07:14:56.14 ID:???
>>709
イベントリスナーの中に変数作って実行したら変数に文字列を追加してif文で判断すればいいんじゃない?面倒だけど
712Name_Not_Found:2014/01/09(木) 08:42:20.95 ID:???
>>709
発火させればわかるんじゃない?
普通はとロジック上で登録されているか判断できると思うけど
713Name_Not_Found:2014/01/09(木) 14:31:41.40 ID:???
>>645
間違ってるということはバグだから言ってることは正しいな
714Name_Not_Found:2014/01/09(木) 15:25:07.16 ID:???
配列に画像を入れるにはどうすればいいですか?

var img = [xxx1.jpg, xxx2.jpg, xxx3.jpg, ];

こういう風にまとめて書きたいだけなんですがググると難しいものばかり出てきます
715Name_Not_Found:2014/01/09(木) 16:11:45.54 ID:???
>>714
「画像」が何を指すのか。
ファイル名なら文字列で、HTMLに貼り付ける画像ならImageオブジェクトで。
716Name_Not_Found:2014/01/09(木) 16:46:37.51 ID:???
>>715
すみません。そもそも書き方が大きく間違ってるのかと思って
ざっと書いたのですが実際にはこう書いてます

var img = ["../image/xxx1.jpg", "../image/xxx2.jpg", "../image/xxx3.jpg"];
717Name_Not_Found:2014/01/09(木) 16:48:37.24 ID:???
ポップアップメニューを開いたときに指定のリスナーをセットして
閉じるときにセットしたリスナーを破棄したいのですが
最終的にリスナーをひとつも残さず処理することは可能ですか?
718Name_Not_Found:2014/01/09(木) 17:21:54.49 ID:???
>>713
間違いの対象を読み違えてる
719Name_Not_Found:2014/01/09(木) 18:12:54.57 ID:???
>>716
何が疑問?
new Image()してsrcプロパティにファイル名を設定してHTML中に貼る部分?
「配列で」じゃなく、まず1つで試してみ。
720Name_Not_Found:2014/01/09(木) 18:49:51.74 ID:???
>>691
闇プログラマー認定協会の方ですか?
721Name_Not_Found:2014/01/09(木) 19:32:00.70 ID:RNYbvEE8
function write(a){
document.write(a);
};
として、write("hey");という風に短くして書きまくるのは皆さんとしてはよろしいのでしょうか?
色んな処理に引数で代入しまくって作業を省きまくっています。
722Name_Not_Found:2014/01/09(木) 19:36:28.09 ID:RNYbvEE8
//example
document.write(img(画像のパス));
function img(a){
return "<img src='"+a+"'>";
};
こんな感じだと煙たがられますか?
723Name_Not_Found:2014/01/09(木) 20:12:38.26 ID:KxsT86zo
>>721
時と場合によるけど
applyでargumentsを渡したい気分
724Name_Not_Found:2014/01/09(木) 20:30:26.34 ID:???
>>719
1つで試したんですが""の中の文字列が表示されただけでした

やりたいのは3つの配列の中にグー、チョキ、パーの画像を用意して
ボタンを押したらランダムで表示させるというものです
ボタンを押したら配列の中身をランダムで表示させるところまではできたのですが
どうしても画像を表示さえることができません
725Name_Not_Found:2014/01/09(木) 20:59:57.93 ID:???
>>722
書き方自体は気にならないけど、document.writeが煙たい

>>724
<img src="xxx1.jpg" id="hoge">


var img = document.getElementById('hoge');
img.src = "xxx2.jpg"; // これを配列から拾ったものにすればいいよ
726Name_Not_Found:2014/01/09(木) 22:03:15.60 ID:???
>>725
すみませんHTMLのほうは表示されたんですがJavascriptの画像は何も表示されないです
階層も間違っていないのですがブラウザか何かで変わるのでしょうか?
727Name_Not_Found:2014/01/09(木) 23:34:05.94 ID:???
コードゴルフとかでInputがあるケースってjsでどうやって書くんだろ
728Name_Not_Found:2014/01/09(木) 23:53:18.25 ID:???
SpiderMonkey JavaScript Shell使ってるところならreadline()とかできるよ
https://developer.mozilla.org/ja/docs/SpiderMonkey/Introduction_to_the_JavaScript_shell
729Name_Not_Found:2014/01/09(木) 23:57:55.13 ID:???
なるほどそういうことかthx
730Name_Not_Found:2014/01/10(金) 01:24:55.20 ID:???
そういうのは大抵Nodeでの標準入力じゃないかな
731Name_Not_Found:2014/01/10(金) 05:09:41.40 ID:???
windowオブジェクト書く奴何なの
window.open()笑、open()が正しいだろ=そして速いと思っていた。
( window.open(表記)=window.window.open(内部) open(表記)=window.open(内部) )
ところが時間測ってみたら
window.navigator>navigator
window.onfocus<onfocus
という微妙な答えが帰ってきたんだが。 http://kie.nu/1B9s
何回測ってみても明らかに差がある。誰か原因分かる人居たら教えてほしい。
//テスト文。hogehogeに入れる。回数はCPUの性能と相談
a=new Date()-0;i=100000;while(i--){hogehoge}console.log(new Date()-a);
732Name_Not_Found:2014/01/10(金) 07:30:22.33 ID:???
onfocus は上書きして定義するもの
navigator は最初から用意されているもの
の違いが現れているのでは?

ところで XXX インターフェースやメソッドの有無を調べるときは
単に XXX と書くとサポートされていない場合に
未定義の変数と見なされてエラーになるが
window.XXX と書けば undefined に評価されてエラーにされないので
tryブロックも不要になる
733Name_Not_Found:2014/01/10(金) 14:04:37.93 ID:???
ある要素が今画面上に表示されているか、スクロールアウトしているか
を調べるにはどうしたらいいですか?
734Name_Not_Found:2014/01/10(金) 14:51:55.49 ID:???
JavaScriptを組めるFLASHみたいなツールソフトってまだないんでしょうか。
FLASH自体はJSへの書き出しはいまいちだし。
735Name_Not_Found:2014/01/10(金) 15:07:12.71 ID:???
if文を習ったのですがpromptに何も入力されなければ入力するようにalertして
キャンセルされたら何もしないってことは難しいですか?
担当の人に聞いても何もしないのをif文に書くのは無理と言われました

var name = prompt("ここに名前を入力してください", "");
if (name != "") {
alert(name + "さんこんにちは");
}else{
alert("空白はだめですよ");
}

このままだとキャンセルされるとnullさんこんにちはと出ます
736Name_Not_Found:2014/01/10(金) 15:16:34.74 ID:???
if (name !== null && name !== "") {
737Name_Not_Found:2014/01/10(金) 15:24:12.10 ID:???
nullさんこんにちはと出ました
738Name_Not_Found:2014/01/10(金) 16:18:54.76 ID:???
こんにちは、nullさん (^^♪
739Name_Not_Found:2014/01/10(金) 21:44:17.89 ID:qJBMofMt
>>735
キャンセルされると文字列が代入されないためnullが変数に代入されるから、
name==nullであるかを判断すれば良い。
こちらも初心者なのでごめんね。

/*以下コード*/
alert(name())
function name(){
var name=prompt("ここに名前を入力してください", "");
if (name == null){//ここで変数nがnullか判定する。この時点でぬるぽであればメッセージを返す。
return "ぬるぽ(キャンセルされました)"
}
else if(name!=""){//入力がありぬるぽでない場合以下の文字列を返す
return name+"さんこんにちわ"
}else{//空白で条件に当てはまらなければ以下のエラーを返す
return "空白はだめですよ"
}
}
740Name_Not_Found:2014/01/10(金) 21:44:53.36 ID:qJBMofMt
2chってtab,spaceが削除されて表示されるからみにくいな
741Name_Not_Found:2014/01/10(金) 22:07:16.94 ID:???
この質問とは全く関係ない素朴な疑問なんだが、学習目的以外でpromptって使う?
alertは(イケるとは言い難いが)「右クリック禁止!」みたいな例でまだ見るっちゃ見るが
742Name_Not_Found:2014/01/10(金) 22:37:37.48 ID:qJBMofMt
>>741
なにかしら入力させる場面はいまでもあるっしょ。
俺はエロ画像フォルダのパスワードロックシステムをpromptで作った
743Name_Not_Found:2014/01/10(金) 22:39:40.72 ID:qJBMofMt
使いにくいdocument.writeで頑張った。
コードの省略のための練習で作った。

set('title("WriteFrameWork")',0)
set('write("あのね、・・")',0)
set('write("このページはね・・")',0.5)
set('write("全部JavaScriptで書かれているんだよ。<br>")',1)
set('write("document.writeを使ってるけど、簡単でいいんじゃない?<br>")',2)
set('write("Script内で処理を完結させればページが真っ白になることなんてないじゃん。<br>")',3)
set('write("<hr>set(動作,秒数)という風に書いていくんだ<hr>")',4)
set('write("まあ、・・")',5)
set('write("バイバイ!")',6)
set('write("<h1>IEでは動かないけどな!</h1>")',7)
/*FrameWork..?*/
function write(a){document.write(a)}
function title(a){write("<title>"+a+"</title>")}
function set(a,b){setTimeout(a,b*1000)}
744Name_Not_Found:2014/01/10(金) 22:45:04.17 ID:???
今どきsetTimeoutの第一引数に
文字列を指定する奴は素人だろうなw
745Name_Not_Found:2014/01/10(金) 23:03:32.82 ID:qJBMofMt
>>744
素人です
746Name_Not_Found:2014/01/11(土) 03:50:18.71 ID:???
DOM Aのstyleを DOM Bのstyleにコピーしたい時
domb.style = doma.style
だとおかしくなりますか?
747Name_Not_Found:2014/01/11(土) 03:57:07.94 ID:???
オブジェクトなので参照渡しですよね
別々のDOMに同一のstyleを持たせたら何が起きる?
748Name_Not_Found:2014/01/11(土) 04:04:48.16 ID:???
domb.style.cssText = doma.style.cssText
でうまくできたみたいです
失礼しました
749Name_Not_Found:2014/01/11(土) 05:54:50.78 ID:???
>>745
無名変数使えやゴルァ。ということです
× setTimeout("alert()",100); ○ setTimeout(function(){alert()},100);
eval系はほんとに以下略
詳しくはググるといいよ

d=document;d.title="WriteFrameWork";w=function(a,b){
setTimeout(function(){d.body.innerHTML+=a},b*1000)};//104byte
//メイン処理
w("あのね、・・",0);w("このページはね・・",0.5);
w("全部JavaScriptで書かれているんだよ。<br>",1);
w("<hr>w(文字,秒数)という風に書いていくんだ<hr>",2);
w("まあ、・・",3); w("バイバイ!",4);
//3分クッキング
//一応補足しとくと、これでもそれなりにダメコード(実用的には)

>>741
数分で適当なプログラム組む時に。…使うかもしれない。
最近だとjsコンソールが便利過ぎて普通にコンソールから引数で渡してるかな(ゆとり)
まぁでも、やっぱ完全モーダルなprompt&amp;alertは不便過ぎんだよね。
750Name_Not_Found:2014/01/11(土) 06:20:00.94 ID:???
prompt()はブックマークレットでコピペ用に出力する時に使うかな。
alert出力はコピペできないし(ブラウザによるんだと思うけどchromeだと)、
コンソール開いてコピーするのは面倒だし。
自動入力されたパスワードを取り出してみたり、クッキーを取り出してみたり。
751Name_Not_Found:2014/01/11(土) 09:08:51.91 ID:???
一応言っておくね。
IEでalertはコピペできる。

もっと言うならば、Windowsの
メッセージボックス自体がコピペできる。

たとえば「メモ帳」の保存しますか?の
メッセージボックスとかね。
752Name_Not_Found:2014/01/11(土) 10:09:15.78 ID:???
それマジで言ってるの? マジならやり方教えろください
753Name_Not_Found:2014/01/11(土) 10:41:30.43 ID:???
>>749
無名変数って何ですか。変数が無名なんて可能?
754Name_Not_Found:2014/01/11(土) 12:06:14.74 ID:???
>>739
調べても担当の人に聞いてもわからなく手上げなので
レスもらえるだけでもありがたいです

ただわからないのがキャンセルしたときに何も表示させないことなんです
キャンセルしたときに文字を出すのはできるんです
なんて説明したらいいのか難しいんですけど担当の人が言うように
何もさせないプログラムというのは不可能なんでしょうか?

ただキャンセルできるだけでいいんです
755Name_Not_Found:2014/01/11(土) 12:12:10.32 ID:???
>>752
え? コピペの話?
コピペのショートカット知らないの?
756Name_Not_Found:2014/01/11(土) 12:12:17.11 ID:???
var name = prompt("ここに名前を入力してください", "");
if (name !== null && name !== "") {
alert(name + "さんこんにちは");
}
757Name_Not_Found:2014/01/11(土) 12:20:32.46 ID:???
あ、空白okのときは分けるのか

var name = prompt("ここに名前を入力してください", "");
if (name === "") {
alert("空白");
}else if(name === null){

}else{
alert(name + "さんこんにちは");
}
758Name_Not_Found:2014/01/11(土) 12:27:04.59 ID:???
>>756ー757
みなさんレスしてくれるのは凄くありがたいので
何度もこんなこと書くのが申し訳ないのですがnullさんこんにちはと出ます
759Name_Not_Found:2014/01/11(土) 12:30:22.32 ID:???
ブラウザ何?
IE9でもFx26でもOpera12でもそうならないけど
760Name_Not_Found:2014/01/11(土) 12:31:05.83 ID:???
Chrome 31です
761Name_Not_Found:2014/01/11(土) 12:39:49.33 ID:???
右クリックから「ページのソースを表示」しろ

んで、そのコードをここに貼り付けろ。
762Name_Not_Found:2014/01/11(土) 12:41:00.59 ID:???
長くて貼り付けられないというのなら、
不要な部分を削って
できるだけ短くしてから貼り付けろ。
763Name_Not_Found:2014/01/11(土) 12:43:07.70 ID:???
window.name chrome string でググるとよろし
764Name_Not_Found:2014/01/11(土) 12:47:25.76 ID:???
なるほど、グローバルでnameって変数名使えないのか

var nam = prompt("ここに名前を入力してください", "");
if(nam === null){
// nothing
}else if (nam === "") {
alert("空白");
}else{
alert(nam + "さんこんにちは");
}
765Name_Not_Found:2014/01/11(土) 13:08:03.50 ID:???
そもそもグローバル変数は使っちゃダメだよね。
766Name_Not_Found:2014/01/11(土) 13:23:07.55 ID:???
>>761
<!doctype html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>test</title>
<link rel="stylesheet" href="css/test.css" />
<script src="js/test.js"></script>
</head>
<body>
<p><span id="test">test</span></p>
</body>
</html>

javascriptは>>757です
bodyの最後に置いてもheadに置いてもnullさんこんにちはと出ました
767Name_Not_Found:2014/01/11(土) 13:29:36.87 ID:???
よし、じゃあ次はjs/test.jsの中身をコピペするんだ。
768Name_Not_Found:2014/01/11(土) 13:32:24.96 ID:???
js/test.jsの中身は>>757です
そのままコピペしました
769Name_Not_Found:2014/01/11(土) 13:35:07.04 ID:???
>>755
そうだけど
選択してないのにCtrl+Cだけでダイアログの文字 コピペできるんだね
初めて知ったわ
770Name_Not_Found:2014/01/11(土) 13:37:53.79 ID:???
name使っちゃいけないのか
関数内でvar nameすりゃいいんだろうけど
771Name_Not_Found:2014/01/11(土) 13:52:01.38 ID:???
初級のテキストとかどうしてるんだろう
(function(){ ... })(); をおまじないとしとくんだろうか
772Name_Not_Found:2014/01/11(土) 13:53:42.96 ID:???
>>744
>>749
ただfunction文で作った関数オブジェクトってクロージャが付くから
速度重視の場合はnew Functionしろって言われる場合もあって、
その場合文字列で関数作る事になってしまうんですがそれは。

>>752
この場合は無名関数の間違いだろうけど、無名の引数とか作れるし無名変数ってのもアリかも知れん。
773Name_Not_Found:2014/01/11(土) 13:55:52.96 ID:???
>>772
アンカー間違えた。>>752じゃなくて>>753
774Name_Not_Found:2014/01/11(土) 16:12:03.90 ID:yUJMEq1W
アフィリエイト報酬横取り!まとめサイトを狙うスマートフォンアプリ
http://matome.naver.jp/odai/2138898952264714501
775Name_Not_Found:2014/01/11(土) 17:05:25.09 ID:???
ある要素の中に、絶対配置された子要素があり、それは親要素をはみ出ています。
その時「子要素を含めた全体の高さ」を取得するにはどうしたらいいですか?
776Name_Not_Found:2014/01/11(土) 17:52:43.91 ID:???
各要素の座標やサイズは取得できるんだから
それぞれ取得して計算したら?
777Name_Not_Found:2014/01/11(土) 17:53:04.59 ID:???
>>775
そんな子はさっさと勘当すべき
778Name_Not_Found:2014/01/11(土) 19:52:15.03 ID:???
何日か前に
キャンバスでMS officeを実装したwebアプリの記事をテククランチで見たのですが
キャンバスってそんなに高速に動作するんですか?
779Name_Not_Found:2014/01/11(土) 19:54:00.11 ID:???
DOMアクセスは遅い
ゆえにキャンバスはもっと遅い
というイメージなんですが。
間違っているのでしょうか?
780Name_Not_Found:2014/01/11(土) 20:28:44.05 ID:???
全くの認識ミス。
Canvasインターフェイス+JSはFlash並みのパフォーマンスは出る。
GPUアクセラレーションがまだちと弱いがAS3がJSより遅いので最新の環境でも五分五分位になる。

そもそもDOMよりも遅い、って比較がイミフではあるが。
781Name_Not_Found:2014/01/11(土) 20:30:27.61 ID:4DndtPjG
>>758
何度も言うがこれで無理ならブラウザが異常。試してみろ。

/*以下コード*/
alert(name())
function name(){
var name=prompt("ここに名前を入力してください", "");
if (name == null){//ここで変数nがnullか判定する。この時点でぬるぽであればメッセージを返す。
return "ぬるぽ(キャンセルされました)"
}
else if(name!=""){//入力がありぬるぽでない場合以下の文字列を返す
return name+"さんこんにちわ"
}else{//空白で条件に当てはまらなければ以下のエラーを返す
return "空白はだめですよ"
}
}
782Name_Not_Found:2014/01/11(土) 20:39:54.99 ID:???
キャンバスって使ったことないのでよく知らないのです
ありがとうございました
783Name_Not_Found:2014/01/11(土) 20:43:28.68 ID:???
var hoge;
if (nanntara)
hoge = a;
else
hoge = b;

return hoge;
こういうコードを簡潔に書く方法ってないですか?
784Name_Not_Found:2014/01/11(土) 20:52:27.73 ID:4DndtPjG
>>783
最初にhogeを定義しなくても、ifのなかでvar使ってhogeを生成して初期化すれば?
785Name_Not_Found:2014/01/11(土) 21:07:19.71 ID:4DndtPjG
ifの括弧省略って見にくくね?
786Name_Not_Found:2014/01/11(土) 21:17:51.11 ID:???
var hoge = nanntara ? a : b;
787Name_Not_Found:2014/01/11(土) 21:33:13.61 ID:???
return nanntara ? a : b;
でいいじゃん
788Name_Not_Found:2014/01/11(土) 22:40:28.26 ID:???
var a=["どざえもん","ぼく"]
alert(a[1]+a[0])

という配列を作りましたが、配列の用途が余り思いつかないんです。みなさんは配列でどのようなスクリプトを書くのでしょうか。
789Name_Not_Found:2014/01/11(土) 22:51:48.23 ID:???
あ、三項演算子があったか
790Name_Not_Found:2014/01/11(土) 23:03:14.28 ID:???
スライスをさっき知った。クッキーをスライスしまくれて便利
791Name_Not_Found:2014/01/11(土) 23:17:45.54 ID:???
そうか、大変だな。プログラマじゃないのに
JavaScriptを使わなきゃいけない人は。
792Name_Not_Found:2014/01/12(日) 00:00:37.09 ID:???
ほげってほげだったんだな。ホージとでも読むのかとおもってた。
793Name_Not_Found:2014/01/12(日) 00:17:34.91 ID:???
そんなやついねーわ
794Name_Not_Found:2014/01/12(日) 06:16:02.09 ID:???
>>791
勉強になるし小物やアプリが作れそうだからやってる。C言語とか少しかじったけど面白味が無かったしコンパイルめんどいからやめた。
795Name_Not_Found:2014/01/12(日) 06:43:12.69 ID:???
開発環境の設定が死ぬほど面倒
javascriptはスマホLinuxMacと全部で動くしブラウザさえあればOK
zip解凍しただけで開発環境整ってワショーイ出来る手軽なものは無いのか
なでしこ系以外で。そう思ったことはある。

Java? 起動糞重いので却下
796Name_Not_Found:2014/01/12(日) 06:52:32.27 ID:???
子供(中3)がHTMLを使ってホームページを作ってるらしいが、未だにcenterタグ使ってるレベルで、教科書見せてもらったけどありゃ意味なさそうだわ。2000年のデザインのホームページしか作れない。
しかもJavaScriptは対応していないブラウザがあるからあまり使わないようにと使わないらしい。先生の頭が対応してないんじゃなくて?どんなブラウザつこうてんねん。と、思ったけど所詮そんな存在なのか
797Name_Not_Found:2014/01/12(日) 07:13:31.43 ID:???
googleさんdisってんの?
798Name_Not_Found:2014/01/12(日) 07:41:07.89 ID:???
フォーンゲップでもうネイティブアプリとの差なんてほぼ無いだろ。これからはJavaScriptが未来のITを牽引するんだ!
799Name_Not_Found:2014/01/12(日) 12:02:13.99 ID:???
>>796
まじかw
その教科書うpしてよ
800Name_Not_Found:2014/01/12(日) 15:23:02.83 ID:???
JavaScriptの変態性をそこらの生徒が理解できるとも思えない
801Name_Not_Found:2014/01/12(日) 16:43:27.23 ID:???
ループ中でthis.hogeにアクセスする時、
hoge = this.hoge
としてからアクセスする方がいいですか?
しなくても最適化が働く可能性は高いですが
802Name_Not_Found:2014/01/12(日) 17:27:39.90 ID:???
var o = {
a: 1,
b: 2,
c: 3
};

for ( var key in o ){
delete(o[key]);
console.log(key+' deleted');
console.log(o);
}

こういう風に、ループの中でオブジェクトのメンバを削除しても問題はないようですが
すべてのJavaScriptエンジンで安全なのでしょうか?
ループ中で削除しているのに内部カウンタが変にならないのは何故ですか?
803Name_Not_Found:2014/01/12(日) 17:36:47.26 ID:???
for ( var key in o )ループ中でoにメンバを追加しても、そのメンバはループの中に含まれない
というところを見ると、内部でキーのリストが作成されて、そのリストがループしてるのかな?
804Name_Not_Found:2014/01/12(日) 17:46:15.98 ID:???
と思ったけどループの中で一度にメンバを削除するとループ回数は減る
どんな実装だこれ
805Name_Not_Found:2014/01/12(日) 18:02:13.90 ID:???
ECMAScriptの仕様の方を見てみれば?
806Name_Not_Found:2014/01/12(日) 18:28:02.11 ID:???
ループ処理のなかで関数を呼び出すとき
外にその関数を変数に入れておくといいと聞いてやってみたのですが
エラーが出るものと出ないものがありますこの違いはなんでしょうか?
807Name_Not_Found:2014/01/12(日) 18:39:19.09 ID:???
内部的にはイテレータが呼ばれてる
このイテレータはあんまり厳密に定義されてないは

ただ形としては、最初にキー一覧のリストを保持して、
その最初を列挙し、列挙する度(や列挙中の削除で)消していく形と思われるそうだ

途中で追加されたものは列挙しなくていいし、削除されたは多分列挙されないだろう程度にしか書いてない

つまり早い話実装依存です
808Name_Not_Found:2014/01/12(日) 19:00:43.54 ID:???
ありがとうございます
自分でキーを取得してそれをループした方がよさそうですね
809Name_Not_Found:2014/01/12(日) 19:03:02.25 ID:???
ループの中でクロージャを使ってたら
jshintにDont make functions within a loop
と怒られました
ループの中ではクロージャ使ったら駄目なんでしょうか
810Name_Not_Found:2014/01/12(日) 19:12:31.40 ID:???
>>806
関数の中でthisが使われているのでは
811Name_Not_Found:2014/01/12(日) 21:08:00.80 ID:???
canvasをfuncution aの中でgetContextしてfunction bの中でcanvasを使う時もう一度
getContextしなければいけないですかね
前処理みたいな感じで一回やるだけにしたいんですが
812Name_Not_Found:2014/01/12(日) 21:17:47.55 ID:???
両関数の外側でgetContextするのではダメなの?
813Name_Not_Found:2014/01/12(日) 22:01:21.85 ID:???
>>810
まさにそれでした
814Name_Not_Found:2014/01/12(日) 22:53:36.11 ID:???
>>812
動かないです
普通動くと思うんだけどなぁ

<script>//<![CDATA[

/* 2009/08/05, 2010/03/03
・Canvasサンプル
Firefox 3.5以上。 3.0は不可
Opera 10.5以上。10.1は不可
*/
var canvas = document.getElementById("canvas1");
var c = canvas.getContext("2d");

function draw() {
c.fillText("fillText デフォルトフォント あういえお", 10, 20);
}

function init() {
/* canvas要素のノードオブジェクト */

/* 四角を描く */
var canvas = document.getElementById("canvas1");
var c = canvas.getContext("2d");
}
//]]></script>
</head>
<body onload="init()">
<canvas id="canvas1" width="300" height="300"></canvas>
<input type="button" value="init" onclick="init()">
815Name_Not_Found:2014/01/12(日) 23:06:46.59 ID:???
>>814

<script>//<![CDATA[

/* 2009/08/05, 2010/03/03
・Canvasサンプル
Firefox 3.5以上。 3.0は不可
Opera 10.5以上。10.1は不可
*/

var c;

function draw() {
c.fillText("fillText デフォルトフォント あういえお", 10, 20);
}

function init() {
/* canvas要素のノードオブジェクト */

/* 四角を描く */
var canvas = document.getElementById("canvas1");
c = canvas.getContext("2d");
}
//]]></script>
</head>
<body onload="init()">
<canvas id="canvas1" width="300" height="300"></canvas>
<input type="button" value="init" onclick="draw()">
816Name_Not_Found:2014/01/12(日) 23:06:49.84 ID:???
そりゃ動くわけねえよ
最初のグローバルcanvasはdom要素がまだできてないから空だし
initの中でvarしたらそれはローカルだし
(htmlの方のdrawのとこは書き間違いだよね?)

<head>
<script>
var canvas;
var c;

function draw() {
c.fillText("fillText デフォルトフォント あういえお", 10, 20);
}

function init() {
canvas = document.getElementById("canvas1");
c = canvas.getContext("2d");
}
</script>
</head>
<body onload="init()">
<canvas id="canvas1" width="300" height="300"></canvas>
<input type="button" value="draw" onclick="draw()">
817Name_Not_Found:2014/01/12(日) 23:07:34.97 ID:???
おっとかぶった
818Name_Not_Found:2014/01/12(日) 23:19:54.42 ID:???
>>808
オブジェクトから特定のキーを削除したいって話だよね?

var _ = require('lodash');
console.log(_.omit({ a: 1, b: 2, c: 3, d: 4 }, ['b', 'd']));
{ a: 1, c: 3 }

もし、なにか処理してから消したいっていうのであれば、
_.omitの第二引数にクロージャ使える。
_.omit({ a: 1, b: 2, c: 3, d: 4 }, function(value, name) {・・・})
819Name_Not_Found:2014/01/12(日) 23:22:38.68 ID:???
>>815
>>816
できたー
ありがとうございます!!
820Name_Not_Found:2014/01/12(日) 23:24:38.10 ID:???
CDATAってもう削除されたんじゃないの?
821Name_Not_Found:2014/01/12(日) 23:26:04.24 ID:???
初耳
822Name_Not_Found:2014/01/13(月) 00:04:28.54 ID:???
これを隠蔽する場合はどうするんだろ、初級者だからあまりよくわかっていない

<head>
<style>#canvas1{border:1px solid black;}</style>
<script>
window.onload=function(){
var canvas = document.getElementById("canvas1");
var c = canvas.getContext("2d");

var draw1=function(){c.fillText("あいうえお", 10, 20);};
var draw2=function(){c.fillText("かきくけこ", 20, 40);};

document.getElementById("bt1").addEventListener('click',draw1,false);
document.getElementById("bt2").addEventListener('click',draw2,false);
};
</script>
</head>
<body>
<canvas id="canvas1" width="300" height="300"></canvas>
<input type="button" value="draw1" id="bt1">
<input type="button" value="draw2" id="bt2">
</body>
823Name_Not_Found:2014/01/13(月) 01:25:54.84 ID:???
>>795
C/C++のCならTCC(Tiny C Compiler)だとzip展開するだけで環境揃うし、
「tcc -run ソースコード」で実行ファイル作らずに直接実行も出来る。
ただのCだからVCでもgccでもclang/llvmでも動くコードとかも書ける。
Windows限定だがWSHはインストール不要だろうし、
C#/JScript.NET/VB.NETもコンソール版コンパイラは.NET入ってれば勝手に入ってる筈。

GUIまで考えるとWebブラウザでJavaScriptが手軽なのは否定しないがな。
824Name_Not_Found:2014/01/13(月) 02:18:51.84 ID:???
>>822のJavaScript部分を単純にjQueryを使うだけでこうなる

$(function(){
 var canvas = $("#canvas1")[0];
 var c = canvas.getContext("2d");

 var draw1=function(){c.fillText("あいうえお", 10, 20);};
 var draw2=function(){c.fillText("かきくけこ", 20, 40);};

 $(#"bt1").on('click',draw1);
 $("#bt2").on('click',draw2);
});

俺ならこう書く。

$(function(){
 var canvas = $("#canvas1")[0];
 var c = canvas.getContext("2d");

 $(#"bt1").on('click', function() {
  c.fillText("あいうえお", 10, 20);
 });

 $("#bt2").on('click', function() {
  c.fillText("かきくけこ", 20, 40);
 });
});
825Name_Not_Found:2014/01/13(月) 03:36:59.25 ID:ZXKNZvaK
次のJavascriptをセレクタを使わずに書き換えたいのですが、どのようにしたらよいでしょうか?
hogehogeに入っている都道府県名と一致すれば、都道府県が最初から選択されてるいるようにしたいです。

var prefname = new Array();
var prefvalue = new Array();
var x = 0;
$("select[name='todofuken'] option").each(function(){
prefname[x] = $(this).text();
prefvalue[x] = $(this).val();
i++;
});

for(x=0; x<prefname.length; x++){
if(hogehoge==prefname[x]){
frm.todofuken.value = prefvalue[x];
break;
}
}

------------------------------------
<SELECT name="todofuken">
<OPTION value="00">↓都道府県を選択</OPTION>
<OPTION value="01" >北海道</OPTION>
<OPTION value="02" >青森県</OPTION>
<OPTION value="03" >岩手県</OPTION>
<OPTION value="04" >宮城県</OPTION>
<OPTION value="05" >秋田県</OPTION>
(省略)
<OPTION value="46" >鹿児島県</OPTION>
<OPTION value="47" >沖縄県</OPTION>
</SELECT>
826Name_Not_Found:2014/01/13(月) 04:26:08.32 ID:???
>>825
まずね、hogehogeに入っているのが県名というのがおかしいよ。
普通はキーでなければいけない。
たとえば"県"という文字を省略したいと思ったら大変でしょ?
文字列は人間用もの、内部的にはキーで扱うのが定石。
文字列で入力されたのなら、処理の前にキーに置き換えれば良い。

で、どうしてもhogehogeが文字列でなければならないという話をしてもいいけどさ、
まずさ、そのコード動かないよね? セレクタを使わない以前の話なんだけど。
動かないからセレクタを使わないで書きたいというのならだめ。
まずそのコードを動くようにしなさい。
827Name_Not_Found:2014/01/13(月) 04:42:18.61 ID:???
まだ? どうせみてないだろうけど。

> hogehogeに入っている都道府県名と一致すれば、都道府県が最初から選択されてるいるようにしたいです。

ちゃんと動くように書いたコードはこれ。

var hogehoge = '青森県';
$("select[name='todofuken'] option:contains(" + hogehoge + ")").prop('selected', true);

で、聞きたいんだけど、何のためにこれをセレクタを使わずに書き直したいの?
828Name_Not_Found:2014/01/13(月) 12:08:59.70 ID:???
<script>
function xxx() {
document.getElementById('xxx').innerHTML = '開始';
//適当な処理
var start = new Date(); for(;;) {var time = new Date() - start; if(time > 5000) {break;}}
document.getElementById('xxx').innerHTML = '処理中';
//適当な処理
var start = new Date(); for(;;) {var time = new Date() - start; if(time > 5000) {break;}}
document.getElementById('xxx').innerHTML = '終了';
}
</script>
<div id="xxx">ここに進捗を表示</div>
<button onClick="xxx()">処理開始</button>

getElementByIdによる書き換えで処理中の進捗を表示をさせたいと思っているのですが
開始→処理中→終了の順で表示されず全ての処理完了後に終了だけが出て来ます
開始→処理中→終了の順で表示させるにはどうすればよいのでしょうか?
書き換えが行われた後に次の処理に行くと思っていたのですが・・・
829Name_Not_Found:2014/01/13(月) 14:13:24.38 ID:???
>>828
描画のタイミング

<script>
function xxx() {
document.getElementById('xxx').innerHTML = '開始';
//適当な処理
setTimeout(function() {
document.getElementById('xxx').innerHTML = '処理中';
//適当な処理
setTimeout(function() {
document.getElementById('xxx').innerHTML = '終了';
}, 5000);
}, 5000);
}
</script>
<div id="xxx">ここに進捗を表示</div>
<button onClick="xxx()">処理開始</button>
830Name_Not_Found:2014/01/13(月) 14:24:29.54 ID:???
>>828
「JavaScript innerHtml 描画」あたりでググると理解できると思うよ
簡単に言うと、処理は行われてるけど画面の再描画がされないため
831Name_Not_Found:2014/01/13(月) 17:01:43.63 ID:???
>>829-830
処理完了と描画完了はタイミングが違うのですね
ありがとうございます、助かりましたm(__)m
832Name_Not_Found:2014/01/13(月) 17:35:12.82 ID:???
変数宣言についてなんですが
関数内で一回しか登場しないのを変数に入れるのは無意味なんですか?
833Name_Not_Found:2014/01/13(月) 18:05:14.56 ID:???
>>832
いいえ、無意味とは限りません。
それは説明用変数って呼ばれるものです。

http://hamasyou.com/archives/000199#説明用変数の導入
> 長くて、よく考えないとわからないような評価式があった場合、
> 一時変数を使って意味のわかるようにする。条件ロジックにおいて、
> 各条件記述の意味を適切な名前の一時変数を使って説明するのは有効です。
> ただし、メソッドの抽出を行える場合は、そちらを優先する。
> メソッドにすることで他の場所でも使える可能性ができる。
834Name_Not_Found:2014/01/13(月) 18:06:55.34 ID:???
こっちのほうが具体的だった。

http://d.hatena.ne.jp/asakichy/20100615/1276562541

どんなとき? 複雑な式がある。
どうすれば? 処理の目的を説明するような名前を持つ一時変数に式、または式の一部の結果を代入する。

どうして?
式は複雑になって読みにくくなることがあります。一時変数を使うと、式を管理しやすい形に分解できます。
条件分岐のコードで特に役に立ちます。個々の条件節の意味を、適切な名前の一時変数で説明することができます。
長いアルゴリズムでも役に立ちます。長い計算に含まれる1つ1つのステップを一時変数で説明すればコードがわかりやすくなります。

どうやって?
一時変数にはデメリットもあります。余分な一時変数はコードを読む人の注意をそらし、
コードの理解を妨げます。1つのメソッドでしか使えないため、メソッドを長くする原因にもなります。
よって、「説明用変数の導入」よりも、「メソッドの抽出(Extract Method)」を優先すべきです。
メソッドならオブジェクト全体、スコープによっては他のオブジェクトから使用することもできます。
ただ、「メソッドの抽出」は他のローカル変数があると困難になることがあるので、その場合に「説明用変数の導入」を使用します。
835Name_Not_Found:2014/01/13(月) 19:55:33.99 ID:???
なるほど説明用変数とは初めて聞きました
そういう用途もあったんですね
836Name_Not_Found:2014/01/14(火) 14:09:09.26 ID:???
switch文の条件式で文字列がある場合を表現するには
どう書けばいいんですか?
if (hoge !== "") を表したいということです
837Name_Not_Found:2014/01/14(火) 14:20:47.12 ID:???
>>836
どう考えてもif文が適切ですが、なぜswitch文なんです?
String型であることを保証してあればやりようはありますが、それならそこの一文でif文使ったほうが最良。
838Name_Not_Found:2014/01/14(火) 17:45:32.53 ID:???
chromeでシフトを押しながらマウスホイールを回すと、縦方向にまわしても横方向になることを発見しました
firefoxではそうならないのでchromeだけだと思います
これをJSレベルでやめさせることはできますか?
839Name_Not_Found:2014/01/14(火) 17:49:32.16 ID:???
>>838
とても迷惑な仕組みを考えてるね…
840Name_Not_Found:2014/01/14(火) 18:03:15.25 ID:???
本当に迷惑です
chromeはたまにこういういらぬお節介がある気が
841Name_Not_Found:2014/01/14(火) 18:13:27.48 ID:???
>>840
日本語通じない人?
Chromeの機能を無効化する考えが迷惑
842Name_Not_Found:2014/01/14(火) 18:47:59.62 ID:???
は?馬鹿かお前
ウェブアプリはもはやネイティブアプリに近くなっているのだからシフトキーも普通に使われるのだよ
勝手にホイールマウスの軸を変えるのは迷惑でしかない
迷惑行為を無効化することを迷惑とは言わない。
そもそもシフトキーを押した時に軸を入れ替えるならまだマシだが
縦方向を横方向にし、横方向はそのままだから
シフトキーを押していたら横方向にしかスクロールできない
これをクソ設計と言わずして何と言おうか。
まぁgoogleというブランド価値にファーっとなって思考停止するD級プログラマーには分からないだろうけど
843Name_Not_Found:2014/01/14(火) 18:52:12.02 ID:???
縦方向にしかホイールスクロールできない環境のために付けたのだろうが
今時そんなプア環境にデフォルトで対応すべきではない
対応したければオプションを付けることだ
まぁそんなオプションほとんど誰も使わないだろうが
844Name_Not_Found:2014/01/14(火) 19:02:09.86 ID:???
>>842
そういう機能は拡張で実装しろよ
おまえが不便だと思っている機能が便利だと思う奴がいるかもしれないだろうが
845Name_Not_Found:2014/01/14(火) 19:04:22.55 ID:???
そもそもブラウザの機能をWeb制作側で何とかしようと思う発想がおかしい
846Name_Not_Found:2014/01/14(火) 19:12:30.37 ID:???
>>844
何言ってるか分からん
>>845
ブラウザかアホなんだから仕方ない
フォロー出来るならするけど多分出来ないだろうなぁ
googleは代替機能にスイッチ出来るようには作らないから。
まぁまぁ賢いけど最高に賢いわけではないやつ特有の傲慢さがある
847Name_Not_Found:2014/01/14(火) 19:17:37.90 ID:???
>>846
お前の勝手な思想を訪問者に押し付けるなって事だよ
考え方は多種多様なんだからUIを押し付けてユーザの行動を制限すべきじゃない
やるなら、拡張にしてユーザに選択の自由を与えるべき
848Name_Not_Found:2014/01/14(火) 19:22:51.51 ID:???
というか、自分が不便だと思うなら自分の環境を変えればいいだけだろ
何で皆を同じ環境にしようとしてるんだよ
849Name_Not_Found:2014/01/14(火) 19:30:59.37 ID:???
> まぁgoogleというブランド価値にファーっとなって思考停止するD級プログラマーには分からないだろうけど
いつものD級プログラマー君か
アクセシビリティも知らないんだな
850Name_Not_Found:2014/01/14(火) 19:38:54.44 ID:???
>>847
馬鹿?
これはユーザーが望んだ機能じゃない
googleが勝手に付けた機能だ
こんな機能は存在すらほとんど知られていないだろうな
851Name_Not_Found:2014/01/14(火) 19:39:58.71 ID:???
>>849
アクセシビリティーならスイッチ付けるだろ
常識で考えろ、な
852Name_Not_Found:2014/01/14(火) 19:42:27.35 ID:???
問題の本質も理解せずに頭の表面で反応する虫みたいな奴らなんなんだろうな
人間なら人間らしくしろよ
853Name_Not_Found:2014/01/14(火) 19:45:21.48 ID:???
>>850
「ユーザの望んだ機能」っておまえが決めるわけ?
Shift+ホイールスクロールは普通に便利だと思ったけど、おまえ曰く「googleというブランド価値にファーっとなって思考停止するD級プログラマー」としてそういうユーザを認めないわけ?
もしそんな考えならお前は今すぐWeb製作者を辞めるべきだと思うわ
854Name_Not_Found:2014/01/14(火) 19:55:09.78 ID:8feraBM4
>>847
Googleの仕様に従わないなら使わないほうがいい。致命的な仕様か?
855Name_Not_Found:2014/01/14(火) 20:01:06.53 ID:???
>>853
普通のユーザーが「ホイールスクロール時にシフトキーを押したら左右になる」なんて思うと
お前本当に思ってんの?
こんなめずらしい操作をユーザーが直観的に発見すると?
こんな裏技みたいな機能は知ってるユーザーすらほとんどいねーよ
856Name_Not_Found:2014/01/14(火) 20:01:26.86 ID:???
>>854
「Googleの仕様に従った上で拡張という形でユーザに選択の自由を与えるべき」と意見したつもりだが…
俺は致命的な仕様とは思わない
857Name_Not_Found:2014/01/14(火) 20:04:15.85 ID:???
>>855
知らなかったけど、普通に便利だと思ったよ
ボタンがごてごて付いているマウスなんて使いたくないし、Shiftとホイールスクロールは普通に便利
そもそもMac使いは多機能マウス使いそうにないね

> こんな裏技みたいな機能は知ってるユーザーすらほとんどいねーよ
知らない機能を発見したときに不便と思うか便利と思うかは人それぞれでしょ
あなたの意見が全てじゃない
858Name_Not_Found:2014/01/14(火) 20:04:17.83 ID:???
シフト+ドラッグ時にホイールスクロールしたら
左右にしかスクロールできなくなるというマヌケな仕様だから文句言ってるんだよ
シフト+ドラッグというネイティブアプリ的な操作を想像しなかったんだろうが
googleの認識が遅れていると言わざるを得ない
859Name_Not_Found:2014/01/14(火) 20:06:34.73 ID:???
そもそも知らない機能なら変更しなくても誰も困らない
この人の言うことは本当に頓珍漢だな
860Name_Not_Found:2014/01/14(火) 20:08:09.35 ID:???
あ、ホイールスクロールイベントを殺して
自前でスクロールしたら出来るかな?
ファッキンgoogleのために一肌脱ぐか
861Name_Not_Found:2014/01/14(火) 20:09:04.46 ID:???
>>859
858を読め
最初から俺の個人な話なんて一つもしてねーんだよ
862Name_Not_Found:2014/01/14(火) 20:09:35.53 ID:???
>>858
なんで「シフト+ドラッグ時にホイールスクロール」するんだよ
お前の声を借りるならそんな操作をするユーザが大多数を占めると本気で思ってんの?
863Name_Not_Found:2014/01/14(火) 20:13:55.16 ID:???
横スクロール出来るの初めて知った。便利そうだ

<script>
window.onload = function() {
var a = document.getElementById("a");
var b = document.getElementById("b");


b.addEventListener("mousewheel", function(e) {
if (e.shiftKey) {
e.preventDefault();
var evt = document.createEvent("WheelEvent");
evt.initWebKitWheelEvent(e.wheelDeltaY,e.wheelDeltaX,window,0,0,0,0,e.ctrlKey,e.altKey,false,e.metaKey);

a.dispatchEvent(evt);
}
}, false);
}
</script>
<div id="a" style="height:100px;width:100px;overflow:scroll;">
<div id="b" style="height:500px;width:500px;"></div>
</div>
864Name_Not_Found:2014/01/14(火) 20:16:21.17 ID:???
>>858
それはGoogleに意見すべき内容であってJavaScriptで実装すべきじゃない
Googleに意見しても仕方ないと思ってるならお前の努力が足りないだけ
865Name_Not_Found:2014/01/14(火) 21:00:47.92 ID:???
「べき論」と「javascript で対応するとしたら,どう書く?」の話は混同しないほうが良い.
866Name_Not_Found:2014/01/14(火) 21:05:04.63 ID:???
「シフト+ドラッグ時にホイールスクロール」操作が必要なアプリを作っていて
それがバグるから、とりあえず自分のサイト上では無効化したいってことかな?
867Name_Not_Found:2014/01/14(火) 22:21:23.70 ID:???
>>862
ドラッグしながら画面をスクロールするという操作がある
たしかにそれに気付くユーザーは少ないかもしれないが
そういう操作があり得るんだから作り手としては対応するしかない
868Name_Not_Found:2014/01/15(水) 00:51:19.67 ID:???
JS側で「シフトキーを押して縦に回した結果の横デルタ」と
「ホイールを横に回した結果の横デルタ」を区別することが出来ないので
やはり対応できないようです
しかし副キーをctrlにしたらホイール回転でズームしてしまうという・・
よく使う副キーは開けておいて欲しいものです
必然的にいずれそうなっていくでしょうけども
869Name_Not_Found:2014/01/15(水) 01:19:13.58 ID:???
>>863
これも、
シフト+タテ回転、ヨコ回転、両方タテスクロールになってしまいますね
入れ替えだったらまだ対応できたのですが
870Name_Not_Found:2014/01/15(水) 02:39:58.34 ID:???
>>842
またランカー制度に縛られた闇プログラマーが暴れてんのか。

ユーザには元々ブラウザを変えたりする自由があるし、
ブラウザに機能拡張を導入する自由も持っている。
そもそもサイトごとに挙動変わるとか迷惑なだけだし、
その機能を期待してるユーザの自由はガン無視かよ。

サイトにそういう機能を埋めるというお前の挑戦は、
他人の自由の為ではなく自分の好みの押し付けだ。

正義感に溢れる厨二病闇プログラマーよ。頭を冷やせ。
871Name_Not_Found:2014/01/15(水) 03:04:17.43 ID:???
>>870
ここまで読んで、まだそんなことを言える君の方が頭を冷やした方がいい
たしかに最初は材料を伏せ気味に書いたために荒れてしまい、その点は反省しているが
すでにC級以上のプログラマーなら理解できるくらい情報を出しているはずだよ
872Name_Not_Found:2014/01/15(水) 03:38:11.04 ID:???
スーパーハカーと同じ臭いしかしないC級D級なんて恥ずかしい名称を平気な顔で使う奴の気が知れん…
873Name_Not_Found:2014/01/15(水) 08:56:47.89 ID:???
ChromeのUIの件は、JavaScriptで対応すべきではないとしか言いようがないな
874Name_Not_Found:2014/01/15(水) 09:40:34.40 ID:???
>>873
機能拡張としてやるなら言語に拘る必要はなさ気だが
いずれにせよ普通はサイト側でやるべきでは無いわな

「WebサイトというよりはWebアプリケーションである」
ケースでかろうじて考慮の余地が少しある程度の話
875Name_Not_Found:2014/01/15(水) 13:42:15.02 ID:???
shift+スクロールで横スクロールは歴史のある操作
縦スクロールしかない頃の一般的な実装
876Name_Not_Found:2014/01/15(水) 14:10:08.77 ID:???
(知らんがな)
877Name_Not_Found:2014/01/15(水) 17:52:42.33 ID:???
ウンコ漏れそうなんでが、
どうしたらいいですか?
878Name_Not_Found:2014/01/15(水) 17:59:38.92 ID:???
尤もべき論なんかに耳貸す必要なんか少しも無いがなw
物理的に可能な事は誰かがやる
879Name_Not_Found:2014/01/15(水) 21:46:19.73 ID:???
(function(){
var obj = {
//
};

function $(id) { return document.getElementById(id)}

}());
こんな感じのコードを見るんですが
$関数をobjの外に定義してるのはなぜなんですか?
スコープが一段階深くなってあまりよくない気がするんですけど
880Name_Not_Found:2014/01/15(水) 22:48:15.50 ID:???
>>879
言っている意味がわからない。
どのようにした方がいいと思うの?
881Name_Not_Found:2014/01/15(水) 22:50:36.25 ID:???
>>879
おかしくね?
882Name_Not_Found:2014/01/15(水) 23:31:05.80 ID:???
getElementById を $ でショートカットするって最悪だな…
883Name_Not_Found:2014/01/15(水) 23:31:46.11 ID:???
え?
884Name_Not_Found:2014/01/15(水) 23:40:17.61 ID:???
obj内で$を使うなら外に関数作る意味が分からないということ
objのなかに作るとthis.$ってしなきゃならないからとかかな
885Name_Not_Found:2014/01/16(木) 01:55:31.32 ID:???
>>879
objの中に入れとくと「(function(){var obj = {username:$("username").value,(以下略)」って出来ないだろ?
あとスコープの深さが何と比較して深いと言いたいのかはハッキリさせようか。

>>882
さすがにそれは既存のライブラリに言えとしか…
それを真似たのか、Chromeの開発ツールでは$が未定義だと「function $() { [Command Line API] }」が自動で定義される程だし

>>884
それも理由の一つだろうけど、何故そうしたのかは書いた本人でないと正確な所は分からんな。
886Name_Not_Found:2014/01/16(木) 04:28:47.49 ID:???
jqueryでidはattrで設定するのにクラスはaddClassで設定するのは何でですか
887Name_Not_Found:2014/01/16(木) 18:56:59.91 ID:???
Shift + ホイールの件は、若い子は知らないかもしれんね


>>886
ずっと前は

$(selector).attr({ className : 'hoge' });

ってできたんだけど、どこかのバージョンでattr()とprop()が別れたんさ
そこからattr()ではclassNameは使えなくなった
じゃあってんで、class属性なんだから

attr({ class : 'hoge' });

って書きたいところなんだけど、classがIEで予約後だから使えねー(※クォートすれば確か使えた)
ということで、addClassやremoveClass使いましょうねー、ということになった感じ
888Name_Not_Found:2014/01/16(木) 20:46:09.71 ID:???
ちゃんと調べてきた
クォートすれば'class'は使える
んで、速さは大して変わらん模様
http://jsperf.com/jquery-addclass-vs-attr-class/15
889Name_Not_Found:2014/01/16(木) 20:49:17.70 ID:???
いいえ違います
≪クラスは追加するものだから≫です
つまり分かりやすさのためということですね
byJQUERY公式
890Name_Not_Found:2014/01/16(木) 21:30:49.12 ID:???
まじでかそりゃすまんかった
おっちゃん公式サイトのドキュメントしか読んどらんので
補足してあげてー
891Name_Not_Found:2014/01/16(木) 23:08:58.09 ID:???
ありがとうございました
892Name_Not_Found:2014/01/16(木) 23:15:32.63 ID:???
>>887

> って書きたいところなんだけど、classがIEで予約後だから使えねー(※クォートすれば確か使えた)
> ということで、addClassやremoveClass使いましょうねー、ということになった感じ

違うぞ。クラスっていうのはな、
<span class="foo bar"></span>
みたいに、複数指定できるんだよ。

って言えばもう説明は不要だろうけど、


class="foo" を class="foo bar" にするにはクラスをaddするし、addはまだ簡単だけど、
class="foo bar" なのか class="bar foo" なのかわからんのに、fooをremoveするのって面倒じゃないか。

ついでに言えば、toggleClassってのもあるね。
893Name_Not_Found:2014/01/17(金) 00:08:17.62 ID:???
HTMLではclass="hoge fuga"って書くんだから一度に指定できてもよくね
894Name_Not_Found:2014/01/17(金) 00:26:12.98 ID:???
DOMにdataを持たせる
→DOMをremoveする
→ふたたび同じIDでDOMを作る

とした時、元のdataは読めますか?
895Name_Not_Found:2014/01/17(金) 00:49:36.22 ID:???
>>893
> HTMLではclass="hoge fuga"って書くんだから一度に指定できてもよくね

ほとんどないよ。

良い設計としてプログラムとデザインは分離する。
担当者を分けると考えればいい。俺らはプログラマ。デザインは別の人。

CSSは別のデザイン担当者が作るわけでclassの中身がどうなるかは俺らは把握できない。
俺らがclassを使うときは、状態を変えるために属性値の一つをつけたり外したりするだけ。
一度に指定なんかしたら、デザイン担当者がつけたclassを外しちゃう。
896Name_Not_Found:2014/01/17(金) 00:50:34.93 ID:???
>>894
やってみれば?

普通に考えた答えで合ってるだろうけど
あえて言わない。
897Name_Not_Found:2014/01/17(金) 02:24:08.35 ID:???
オブジェクトを配列的に使う時、それはコレクションですか?
898Name_Not_Found:2014/01/17(金) 02:35:33.12 ID:???
同じ種類のオブジェクトの集まりだから、あってるかな
899Name_Not_Found:2014/01/17(金) 04:17:07.46 ID:???
教本見ながらハノイの塔的なパズルゲームを作って勉強してんだけど、どうしてもわからない解説がある。
ゲーム内容は、6列あるレーンに帽子を重ねて1〜5の番号のついた帽子を順番に重ねると消えるというゲーム。
今やってる処理は、どのレーンに何番の帽子があるかを記憶させるために配列を使っているところ。

そのなかで「holderidプロパティを追加し、そこに変数i、つまり現在のループ回数を代入します。」とあるんだけど
「.holderid」っていうプロパティを追加して使われてるのかが分かりません。
(そもそも「プロパティの追加」っていうのがいきなり出てきた)

Q1. holders[i].holderid = i; という文は[i]にiを代入しているの?それともholderidに代入しているの?
Q2. なんでholderid というプロパティを使ったの?
Q3. それと関数、オブジェクト、プロパティってのが混乱してきたんだけど
オブジェクト = 今のところdocumentしか知らない。
プロパティ = オブジェクトに対する動き (腕がオブジェクトなら"殴る"とか"取る"とか)
関数 = いろいろなオブジェクトとプロパティを使ってまとめた一連の処理。(足で"蹴って" その次に 拳で"殴る"とか)
のことであってる?
そう考えると「プロパティを追加ってどういうことだ・・・?」って感じでわけが分かりません。

//ハットホルダーに帽子を並べる
g_nokori = 0;
var holders = document.querySelectorAll('.hatholder li');
for( i=0; i<holders.length; i++){
holders[i].holderid = i;
setHolder(g_gamedata[i], holders[i]);
//帽子を数える
for(var j=0; j<g_gamedata[i].length; j++){
if(g_gamedata[i],[j] > 0 ) g_nokori++;
}
}
900Name_Not_Found:2014/01/17(金) 05:00:19.07 ID:u1H2EaLu
オブジェクトは{}のこと
基本的にJSに登場する人たちは全員これがベースになってる
特徴はプロパティを追加削除できること

んで、holderidのくだりは、配列の要素になってるオブジェクトに
自分は配列の何番目なのかを持たせているんだよ
901Name_Not_Found:2014/01/17(金) 17:09:01.38 ID:???
chromeのtweetdeckで横ホイールが効かなくなってる
シフトホイール問題と何か関係が?
いずれにしろすげー不便になったファック
902Name_Not_Found:2014/01/17(金) 17:49:19.64 ID:???
tweetdeckだけじゃなくchrome全体で横ホイールが無効になっとる
スクロールバーがスリムにもなってるけど。
シフト+縦ホイールすら効かないし何がしたいんだよ
903Name_Not_Found:2014/01/17(金) 17:51:30.62 ID:???
シフト+縦ホイールは効いてるわ
矛楯を解決するために横ホイールの方を殺したのか
センスねーことしやがって
904Name_Not_Found:2014/01/17(金) 17:56:30.58 ID:???
右手の指が一本取れたから左手の指も一本切り落とすがごとき愚行
905Name_Not_Found:2014/01/17(金) 18:02:05.12 ID:???
つかクローム云々ではなく
windowsがOSレベルで横スクロールサポートしてくれれば…


…してるの?かな?
906Name_Not_Found:2014/01/17(金) 18:06:48.44 ID:???
OSがおかしくなったのかと思ったけどfirefoxでは正常に動いてるよ
なんで今まで右手だけで出来た操作を両手でしないといけないのかと。
良識あるユーザーおよびJavaScripterに抗議の声をあげてもらいたい
重力にあらがうものは必ず落ちるのだ
そしてソフトウェアにおける重力とは合理性である
907Name_Not_Found:2014/01/17(金) 18:49:28.65 ID:???
chromeスレ見たら阿鼻叫喚でワロタ
908Name_Not_Found:2014/01/17(金) 18:56:34.08 ID:???
http://productforums.google.com/forum/#!category-topic/chrome-ja/I05Ixft9UF8
ここを見ると仕様というよりバグっぽいね
それならいいけど
909Name_Not_Found:2014/01/18(土) 12:24:21.94 ID:hpoHYPS3
質問です
ブラウザ全てです

<link>要素のhref属性を書き換えてCSSファイルを切り替えると
要素の大きさやスタイルなどが正しく取得できなくなる
ということはありますか?

A.css
div{ width : 10px; height : 10px; }

B.css
div{ width : 20px; height : 20px; }


としておいて、HTMLの<link>要素にはA.cssを書いておき
JSでこれをB.cssに書き換えると、画面のレンダリングは正しいのですが
<div>要素のoffsetWidthやjQueryのwidth()はウィンドウの大きさになりました
computedStyleを見ても同様で、CSSに書いた内容がまったく見当たりません

もし、そんなことはないはずだから他におかしい箇所があるはず
というようでしたらすみません
よろしくお願いします
910Name_Not_Found:2014/01/18(土) 14:29:53.72 ID:???
リスナーがちゃんと破棄されてるか確認したいんですけど↓のような関数ではどう判断すればいいんですか?

function handle() {
addEventListener("click", handle, true);
//略
removeEventListener("click", handle, true);
//この時点でclickリスナーがundefinedになってるか確認したいんです
}
911Name_Not_Found:2014/01/18(土) 14:33:48.93 ID:???
例が悪かったです
(function(){
function handle(e) {
if (e.type == "mousedown"){
addEventListener("mouseup", handle, true);
} else {
removeEventListener("mouseup", handle, true);
//この時点でclickリスナーがundefinedになってるか確認したいんです
}
}
addEventListener("mousedown", handle, true);
}());
912Name_Not_Found:2014/01/18(土) 14:35:35.63 ID:???
コメント部分のclickはmousedownの誤りでした
913Name_Not_Found:2014/01/18(土) 15:10:50.19 ID:???
ボタンをCSSでいじれば簡単にネイティブっぽくなるよな
914909:2014/01/18(土) 15:14:26.90 ID:hpoHYPS3
<link>要素のhref属性値の書き換えを行った後
loadイベントを待たずに実行していたからでした
915Name_Not_Found:2014/01/18(土) 15:26:50.15 ID:uM2cMwVt
質問です。

c = document.getElementById("<canvas>のID");
c.onmousemove = function(e){ c.title = (マウスの座標に依存した文字列); }
のようにして <canvas> の title 属性を動的に書き換えることで
マウスの座標に応じてポップアップされる文字列を変えようと試みました。
IE10, Opera, Chrome では期待した動作をするのですが、
Firefox ではマウスを動かしても文字列が変わりません。
何か良い方法はないでしょうか。
よろしくお願いします。
916Name_Not_Found:2014/01/18(土) 16:46:41.40 ID:???
title属性はポップアップさせる機能ではない。
Firefoxの動きが標準だと思えばどうすればいいかがわかる。

つまりtitle属性を使わずに作れという話。

だがそれは、プログラマじゃないならムリだろう。
あきらめろ。
917Name_Not_Found:2014/01/18(土) 20:46:49.58 ID:???
諦めてBootstrapでも使うとよいよ
918Name_Not_Found:2014/01/19(日) 10:45:12.49 ID:???
>>916-917
ありがとうございます。
諦めて適当な <div> を置いてその座標と内容を弄ることでポップアップを実現することにしました。
919Name_Not_Found:2014/01/20(月) 00:14:27.41 ID:???
ユーザーに待ち時間を感じさせずに一度に追加できるDOMっていくつぐらいですか?
920Name_Not_Found:2014/01/20(月) 00:16:06.57 ID:???
かわいいと思える幼女の年齢と同じぐらいかな
921Name_Not_Found:2014/01/20(月) 00:22:48.15 ID:???
>>919
ユーザーのCPUのクロック数を教えてくれ。
922Name_Not_Found:2014/01/20(月) 00:35:11.26 ID:???
クロック数…
923Name_Not_Found:2014/01/20(月) 01:07:44.76 ID:???
コアi7です
924Name_Not_Found:2014/01/20(月) 02:29:09.81 ID:GwMc1Jge
例えば、現在時刻から10分後を表示したいのですが、
どうすればいいのですか?
925Name_Not_Found:2014/01/20(月) 03:15:41.39 ID:???
sublime2でJSHINTプラグインを使っているのですが
「宣言しているのに一度も使われていない変数」の警告が出ません
どうすれば出るようになりますか?
926Name_Not_Found:2014/01/20(月) 03:18:51.39 ID:???
>>924
Dateオブジェクトに今から10分後の時刻をセットすればいいよ
setMinutesあたりでおググりください 
927Name_Not_Found:2014/01/20(月) 04:22:24.06 ID:???
925の件ですが、jshint gutterってやつを一回削除してまた入れ直したらなおりました
928Name_Not_Found:2014/01/20(月) 15:12:42.82 ID:???
>>924
var minute=Date().getMinutes()+10
929Name_Not_Found:2014/01/20(月) 16:52:43.75 ID:???
>>928
それ、50分過ぎたら困るんじゃね?
930Name_Not_Found:2014/01/20(月) 17:22:01.82 ID:???
ミリ秒に直して計算するんだ
931Name_Not_Found:2014/01/20(月) 17:26:56.22 ID:???
addEventListenerの第二引数にhandleEventをメソッドに持った
オブジェクトを渡せるのを知ったんだけどいまいち使いどころがわからんのだけど
どういうとき使うといいの?
932Name_Not_Found:2014/01/20(月) 18:00:27.29 ID:???
>>931
var counter = {
count: 0,
handleEvent: function (e) {
console.log(++this.count);
}
};

// カウントされない
document.addEventListener('click', counter.handleEvent);

// カウントされる
document.addEventListener('click', counter.handleEvent.bind(counter));
document.addEventListener('click', counter);
933Name_Not_Found:2014/01/20(月) 21:19:28.01 ID:???
以下のようなwindowにリスナーをセットするコードを(function(){}());
で囲うのって意味ないのかな?

window.addEventListener("click", function(event){
//処理
}, true);
934Name_Not_Found:2014/01/20(月) 21:47:33.21 ID:???
>>933
意味ないね。
ついでにいうと無名関数指定では removeEventListner できないからお勧めしない。
935Name_Not_Found:2014/01/20(月) 22:42:57.19 ID:???
>>929

//これでどうだ?あいぽんのjsanyで書いてる

alert(timer())

function timer(){
t=new Date()
h=t.getHours()
m=t.getMinutes()+10
if(m>59){
hAns=h+1;mAns=m-60
return hAns+':'+mAns
}else{return h+':'+m}
}
936Name_Not_Found:2014/01/20(月) 22:55:44.25 ID:???
>>935
なぜそんな周りくどいことを

var d = new Date();

console.log(d);

d.setMinutes(d.getMinutes() + 10);

console.log(d);
937Name_Not_Found:2014/01/20(月) 23:05:57.30 ID:???
オブジェクトに、自分自身をnewして返すメソッドを実装したく、
その時、オブジェクト名をリテラルで記述するのではなく、
どんなオブジェクト名でも実行できるようにしたいのですが
どうしたらできますか?
938Name_Not_Found:2014/01/20(月) 23:36:53.95 ID:???
>>937
やりたいことがよくわからない
> オブジェクト名をリテラルで記述するのではなく
この時点のコードがどんな感じなのか貼ってみて
939Name_Not_Found:2014/01/21(火) 00:27:28.49 ID:???
function Hoge (){
}
Hoge.prototype.getHoge = function(){
return new Hoge();
};

var a = new Hoge();
b = a.getHoge();

getHogeの中で、new Hogeと書いているので
オブジェクト名が変わった時にはここを書き換えないといけませんが
そうではなく、オブジェクト名に依存しないように書きたいということです
940Name_Not_Found:2014/01/21(火) 00:28:33.57 ID:???
>>934
> ついでにいうと無名関数指定では removeEventListner できないからお勧めしない。

でもさ、名前つけたら、(function(){}()); で囲ったほうが良くなるよな?

function onClick(event){ } // ← グローバルになる
window.addEventListener("click", onClick, true);

(function(){
 function onClick(event){ } // ← ローカル
 window.addEventListener("click", onClick, true);
}());

俺はイベントをremoveすることって殆ど無いので、
たいていはremoveEventListnerで良いという方針。
ついでに言えばjQueryを使う。
941Name_Not_Found:2014/01/21(火) 00:59:54.39 ID:???
window.addEventListener("click", function click(event) {
// this.removeEventListener(event.type, click, true);
処理
}, true);
こういう場合なら(function(){}()); 意味なしという理解でいいのかな
942Name_Not_Found:2014/01/21(火) 01:17:49.71 ID:???
>>939
return new this.constructor()
かなあ
943Name_Not_Found:2014/01/21(火) 03:23:40.93 ID:???
できました
ありがとうございました
944Name_Not_Found:2014/01/21(火) 06:04:44.57 ID:???
無名はこんな感じで剥がすこともあるな

hoge.addEventListener( 'click' , function(evt){
  this.removeEventListener( evt.type , arguments.callee );
});
945Name_Not_Found:2014/01/21(火) 09:32:41.16 ID:???
>>944
srtricr modeでは使えないような
946Name_Not_Found:2014/01/21(火) 21:05:58.44 ID:???
ドラッグアンドドロップを書くときにmouseupのタイミングなどでイベント破棄すると思うのですが
ある質問サイトではフラグ変数を用意していればいちいちremoveEventListenerする必要はないと
書いてありました
これはどういうことなんでしょうか
不要なイベントは破棄しておいたほうが省エネと思うのですが
947Name_Not_Found:2014/01/21(火) 21:39:54.76 ID:???
クソにもならないくだらん思いつきのでっち上げ質問はNG

お前の言う必要なんてどうでもいいわw
948Name_Not_Found:2014/01/21(火) 22:05:52.90 ID:???
a.addEventListener
('touchstart',function(){
count++;
if(count=1){alert('初めのクリック')}//1回目
else if(count=2){alert('2回目')}//2回目
else{game.rootScene.removeChild(this)}//3回目で消す
})

今まで回数をカウントして同じ要素をクリックごとに違う処理を実行してたけど、こんなのより良いものがありましたら教えてください。
949Name_Not_Found:2014/01/21(火) 23:29:53.95 ID:???
普段は、
setTimeout( function(){
処理
}, 10);
というsetTimeoutの使い方をしているのですが、

var id=setTimeout( function(){
処理
}, 10);
として使う方がいいのでしょうか?
また、この2つのやり方は何か違いがありますでしょうか?
950Name_Not_Found:2014/01/21(火) 23:46:17.56 ID:???
前者だとclearTimeoutできないじゃん
951Name_Not_Found:2014/01/22(水) 01:02:37.46 ID:???
質問させてください。独学でJavaScriptを勉強中です。
canvasで、10px四方の黒い四角「■」を描写してそれをタテ・ヨコにズラしながら
10個並べる描写をしたいのですが、if文で繰り返し処理をしても10回処理が繰り返されません。
どのようにしたらよろしいでしょうか。

<body>
<canvas id="canvas" width="400" height="400"></canvas>

<script>

var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');

for (var i=1 ; i<=10 ; i++)
{

var X1 = 10;
var Y1 = 10;
var X2 = 10;
var Y2 = 10;

ctx.fillRect(X1,X2,X2,Y2);
ctx.moveTo(30,30);

}

</script>
952Name_Not_Found:2014/01/22(水) 01:49:33.45 ID:???
>>951
if文何処だよ
で、縦横二次元に並べるのか、斜め一次元に並べんのかどっち?
二次元ならfor文入れ子にするってのが常套
953Name_Not_Found:2014/01/22(水) 01:58:37.48 ID:???
すいません!if文じゃなくて、for文の間違えです。
以下の箱を縦横二次元に10個並べたいのです。

<body>
<canvas id="canvas" width="400" height="400"></canvas>

<script>

var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
//1つの箱の描写(色ランダム)
for (var i=1 ; i<=10 ; i++){
var r = Math.floor(Math.random()*256);
var g = Math.floor(Math.random()*256);
var b = Math.floor(Math.random()*256);
ctx.fillStyle='rgb(' + r + ',' + g + ',' + b + ')';
ctx.fillRect(10,10,10,10);}

</script>

<body>
954Name_Not_Found:2014/01/22(水) 02:55:23.88 ID:???
>>953
fillRectの引数は、x座標、y座標、幅、高さ、だ
ほんでこの座標を10ずつずらしていけばいいじゃない

0〜9のループを2回重ねてxとyを得るもよし
0〜99のループで10で割った商と余りをxとyにするもよし
955Name_Not_Found:2014/01/22(水) 04:24:08.26 ID:???
タイミングの関係でclearIntervalした後にインターバル関数が呼び出されることってありますか?
たとえば、あと0.01秒で呼び出されるって時にclearしても間に合わなかった、とか
956Name_Not_Found:2014/01/22(水) 04:27:36.39 ID:???
>>954
アドバイスありがとうございます。出来上がりました!
957Name_Not_Found:2014/01/22(水) 05:37:00.47 ID:???
>>955
そういうのは大抵、自分の意図しないところでsetIntervalが呼ばれてる
タイマーID(setIntervalの返り値)を保存してよく見てみ
958Name_Not_Found:2014/01/22(水) 05:55:52.04 ID:???
今トラブルにあってるわけではなくて、そういう動作をされると困るな、と思いまして。
そういうことはないということですね
959Name_Not_Found:2014/01/22(水) 08:33:01.06 ID:???
次スレは重複スレの再利用ということでいいよね。
960Name_Not_Found:2014/01/22(水) 14:56:31.81 ID:PkNkEhiB
e.preventDefault()とe.stopPropagation()って
処理の最後に挿入するのと最初に挿入するのとではどっちが正しいんですか?
961Name_Not_Found:2014/01/22(水) 18:47:13.06 ID:???
途中でエラーが起こった時どうしたいか考えて決める物
どっちが正しいとかは当然ない
962Name_Not_Found:2014/01/22(水) 18:59:34.70 ID:???
テンプレをリベラルにすると自治厨荒らしがいなくなり、
逆に荒れることが減るという仮説はある程度確かめられたかと思います
今後のスレ立ての参考にしていただけると幸いです
これはスレにとどまるものではなく、あらゆる組織、そして国がそうなのです
決まりごとにより縛れば縛るほど、
価値や情報の流通はノイズ化したネゴシエーションに阻害され、
創造性は確実に減少の一途を辿ることになります
危惧される一つの社会の流れに対する一つの実験でもありました
誰かがその流れに反知性主義と名付けました
的をいた呼称だと思います
963Name_Not_Found:2014/01/22(水) 19:03:57.94 ID:???
オブジェクト指向って面白いよね
964Name_Not_Found:2014/01/22(水) 20:01:56.76 ID:CyUHLeSY
質問です
ウィンドウが最小化されているかどうか、を判別することは出来るでしょうか
965Name_Not_Found:2014/01/22(水) 20:08:24.25 ID:???
newを使わずcreateだけでオブジェクト指向することって可能でしょうか?
コンストラクタをどうするかとか、インスタンスを使いたいときにどうするのかとか
966Name_Not_Found:2014/01/22(水) 21:35:00.04 ID:???
リベラルの使い方がさっぱりだけど
要するに>>962にとってリベラルが正義で
>>962にとってこのスレのテンプレがリベラルで
荒らしがいないのはリベラルのおかげだから
今後もリベラルな>>1のテンプレを使うのが>>962の望みで
重複のほうを使ったら>>962の意に反するってことでOK?
967Name_Not_Found:2014/01/22(水) 22:25:33.92 ID:???
にほんごを、つかおう。むやみやたらにかたかなえいごをつかっても、かっこいいわけじゃないし、あたまがよさそうともかんじられない。
968Name_Not_Found:2014/01/22(水) 23:03:59.68 ID:???
>>966
リベラルとは誰かに何かを強制することのない精神です
重複スレがあることは今まで知らなかったけど
あるのなら使う方がいいと思いますよ。
もし感じるところがあるのなら参考にして下さい、ということであって
誰かに何かをしろと言っているわけでは断じてないのです
969Name_Not_Found:2014/01/22(水) 23:45:25.46 ID:???
アメリカでリベラルといえば、環境保護団体、動物愛護団体、フェミ団体など、行きすぎた自由で伝統を破壊し
政治力を行使して他人や他国に自分たちの価値観を押しごり押しする、
鼻につく腐臭を放つエリート意識を持つ奴らのことを指すんだぜ

リベラルの実態を知らないアホが、図らずも「不寛容なリベラル」のパラドクスを体現しているというのは
リベラルに染まったものが行き着く宿命なんだろうな
970Name_Not_Found:2014/01/22(水) 23:54:39.45 ID:???
ララベルの話をしているのはこのスレか!?
971Name_Not_Found:2014/01/22(水) 23:55:09.29 ID:???
さまざまな解釈があるでしょうが
俺は自由主義の本質をのみ指してリベラルと言っているのです。
好き放題にするということではなく、
信頼によって制約を撤廃し
基準を上昇させるという世界観です
その一定の成果がこのスレが証明できたと思います
972Name_Not_Found:2014/01/22(水) 23:59:38.04 ID:???
ちなみにどの辺のレスがその証明なのかしらん?
他意はないですが
973Name_Not_Found:2014/01/23(木) 00:04:53.11 ID:???
ageやsageで文句を言うなどという
圧倒的な不毛なレスがほぼなかったというのが成果ですね
974Name_Not_Found:2014/01/23(木) 00:10:39.95 ID:???
そういうリベラルエリート様は愚民に啓蒙をするのが使命で、
次スレを立てるとか面倒な実務はおやりにならないんでしょ?
975Name_Not_Found:2014/01/23(木) 00:11:49.31 ID:???
無意味な「決まり」は、
他人に何らかの影響力をふるいたいだけのクズを跋扈させることになります
その決まりにどの程度の生産性があるかを測る能力を彼らは持っていないし、
そもそもそんなことに興味すらないのです
現在の政権与党にその徴候を容易に見出すことができるでしょう
しかしこれは集団や個人に帰することのできるものでなく、ひとつの社会傾向なのです
だからこそ闘わなければいけないものです
976Name_Not_Found:2014/01/23(木) 00:14:47.17 ID:???
>>974
なぜそうなる??
重複スレがあるなら使えばいいでしょう
なければ普通に立てますが。
いつもしてることです
977Name_Not_Found:2014/01/23(木) 00:15:32.38 ID:???
>>973
ほーん
age/sageの話なんて今までそんなに見てなかったから気付かなかった…
テンプレ嫁とか、丸投げスンナ的なのは減ったのん?
978Name_Not_Found:2014/01/23(木) 00:40:53.87 ID:???
(自分が)文句言わなかったからこのスレが正しい → 政治や社会も云々・・
リベラル様ウヨ脳すぎ・・

>他人に何らかの影響力をふるいたいだけのクズ

お前だよw
979Name_Not_Found:2014/01/23(木) 00:51:27.86 ID:???
>>975
その決まりが「無意味」と誰が決めるの?
ある人が「無意味」だと思っても他の人が「有意義」だと感じたらどうするの?
980Name_Not_Found:2014/01/23(木) 00:52:38.69 ID:???
ここって JavaScript のスレだよね?
981Name_Not_Found:2014/01/23(木) 00:55:00.47 ID:???
980だしテンプレに文句ある人がいるんなら埋まるまでテンプレ議論すればいんじゃない?
982Name_Not_Found:2014/01/23(木) 01:01:05.74 ID:???
「信頼」できない奴ほど、「トラスト・ミー」って言うんだよなぁ
983Name_Not_Found:2014/01/23(木) 01:02:57.41 ID:???
闘わなければいけないものです!
984Name_Not_Found:2014/01/23(木) 05:03:34.62 ID:???
リベラル君は某深夜ラジオのドヤ論法を表面だけかじった中学生ってとこか
985Name_Not_Found:2014/01/23(木) 07:25:07.07 ID:???
最近YouTubeをみててふと気づいたんですが
動画をクリックするとブラウザ描画部分の最上部に
赤いプログレスバーみたいのが出てきます
この謎の技術はなんですか?
986Name_Not_Found:2014/01/23(木) 09:22:06.43 ID:???
>>985
ソース読めば判るはず
読みにくいだろうけどガンバ
987Name_Not_Found:2014/01/23(木) 12:21:04.60 ID:???
988Name_Not_Found:2014/01/23(木) 14:49:00.75 ID:???
>>986
そこをなんとか
989Name_Not_Found:2014/01/23(木) 16:04:07.66 ID:???
ググったらそれっぽいのを再現する方法はたくさん出てくるけど
肝心のyoutubeで実際に使われてるコードは見つからなかった
http://tech.genestream.co.jp/2013/08/22/jquery_nprogress/
http://jsfiddle.net/ajaSB/3/
http://stackoverflow.com/questions/15824909/curious-about-the-new-way-youtube-is-loading-pages
990Name_Not_Found:2014/01/23(木) 17:31:16.50 ID:???
>>989
onreadystatechangeなんかのタイミングで適当にdivの幅を変えてるだけ
www_base_mod.jsのpgにブレークポイントおいてトレース見てみ
Asyncチェックも付けた方がいい
991Name_Not_Found:2014/01/23(木) 19:02:53.39 ID:???
992Name_Not_Found:2014/01/23(木) 19:08:50.57 ID:???
>>990
ヒントありがと

まだよく理解してないけど、単にonreadystatechangeじゃなくて
youtubeのSPF?を利用して"navigate-received-callback"とかのフラグでコールバックを利用してるっぽい?
http://userscripts.org/topics/127639
993Name_Not_Found:2014/01/23(木) 20:48:58.39 ID:???
遷移時にも維持できるのは不思議。アシアルのオンセンUIとかも。
994Name_Not_Found:2014/01/24(金) 06:16:18.17 ID:???
リンクがクリックされたらajaxで内容取得してpushStateで履歴とURL変えてるだけで遷移はしてないだろ
で、アドレスバーの長さは読み込んだ量とかじゃなくて固定値をreadystatechangeで変えてる
var og, Fg, qg = [900, 60, "waiting"], yg = [500, 99, "waiting"], sg = [300, 60, "waiting"], ug = [400, 99, "waiting"], Ag = [300, 101, "done"];
何の事はない、それだけ
995Name_Not_Found:2014/01/24(金) 11:44:39.61 ID:???
ajaxやpushStateを処理してるのはspfやytspfオブジェクトで、本体はspf-vflKdoyEe.jsだね
このfeature SPFてのがyoutubeが開発した非同期通信システムなんだろうかね
996Name_Not_Found:2014/01/24(金) 17:20:14.27 ID:???
別にajax処理部分はフツーの誰でも書きそうな当たり前のロジックだよ。
開発なんて大袈裟な、あのくらいの抽象化はフツーだって。

UI処理から全部含めればそこそこ巨大なシステムだけど、
1つ1つやってることは何も特筆すべき事はないよ。
997Name_Not_Found:2014/01/25(土) 15:37:43.81 ID:???

998Name_Not_Found:2014/01/25(土) 20:09:35.58 ID:???
うめ
999Name_Not_Found:2014/01/25(土) 21:33:46.99 ID:???
うん
1000Name_Not_Found:2014/01/25(土) 21:39:21.46 ID:???
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。