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

このエントリーをはてなブックマークに追加
952Name_Not_Found:2011/10/25(火) 14:47:26.53 ID:???
test.html

function hoge() {

return false;
}

<a href="#" onclick="hoge();">パターン1</a>
<a href="test.html" onclick="return hoge();">パターン2</a>
<a href="test.html" onclick="hoge(); return false;">パターン3</a>
<a href="javascript:void(0)" onclick="hoge();">パターン4</a>
<a href="javascript:void(0)" onclick="return hoge();">パターン5</a>
<a href="javascript:void(0)" onclick="hoge(); return false">パターン6</a>
<a href="javascript:hoge()">パターン7</a>
<a href="javascript:void(hoge())">パターン8</a>

推奨パターンは何番?
953Name_Not_Found:2011/10/25(火) 14:50:21.50 ID:???
<span id="hoge">パターン9</span>

document.getElementById("hoge").addEventListener("click", hoge, false);

function hoge(event) {}
954Name_Not_Found:2011/10/25(火) 18:31:51.77 ID:???
名前空間用の変数を用意して、その直下にメソッドを付けるような書き方をした場合、
それらのメソッドの中でthisキーワードを介して同じ名前空間内の別のメソッドを呼ぶのと、
名前空間から別のメソッドを呼ぶ場合とではどちらが良いですか?
thisでやってしまうと、ローカルスコープ内でエイリアスを作った場合にthisの参照先が変わってしまって
動かなくなると思うんですが、thisでやる場合のメリットってなにかありますか?
955Name_Not_Found:2011/10/25(火) 22:11:04.45 ID:HZcWPYus
複製した時とか?
956Name_Not_Found:2011/10/25(火) 23:02:18.97 ID:???
質問です、というか疑問なんですが

要素を追加する時
var element = document.createElement('div');
element.id = "id";
element.innerHTML = "hogehoge";
element.style.backgroundColor = 'red';

とやるのが一般的ですが
innerHTML="<div id=\"id\" style=\"background-color:red;\">hogehoge</div>";
とやったほうが解りやすいと思うのですが
このやり方だと不具合があったりするのでしょうか?
957Name_Not_Found:2011/10/25(火) 23:12:53.12 ID:???
それがわかりやすいと感じる範囲ならそっちでもいい。(innerHTMLが非標準だったりするけど、大抵は動くからOK)
入り組んだものを作る時スピードが必要ならcreateElementじゃないと遅かったり。
あとは、innerHTML+=〜だと再描画がかかるけど、appendChildだと再描画されない。
958Name_Not_Found:2011/10/25(火) 23:14:27.92 ID:???
html5からinnerHTMLって標準になったって聞いたのですが使わないほうがいいですか?
959Name_Not_Found:2011/10/25(火) 23:16:10.07 ID:???
>>957
なるほどー、そういう問題でしたか
ありがとうございます。ナットクです
確かに全部再描写するより、一つ追加させた方が早いですね
960Name_Not_Found:2011/10/25(火) 23:42:53.13 ID:???
追加するときはそれでいいね、わかりやすいし
自分なら面倒だからライブラリに任せる
jQuery(document.body).append("<div>hello world</div>");
961Name_Not_Found:2011/10/26(水) 00:15:57.73 ID:???
>>958
HTML5で標準になってたとして、それ以前は切り捨てOKでいいなら使えばいいんじゃないかな。
962Name_Not_Found:2011/10/26(水) 12:52:35.47 ID:???
>>958,961
innerHTMLはガラケーを含む殆どのブラウザで昔から使えるしOK
createElementの方がここ1年くらいでだいぶ改善されたけど基本重いから
古いブラウザやマシンのこと考えるんならそっちの方が非推奨
CREATE中はJSで負荷をかけてる分だけ描画が完全に止まるから
CREATEは簡潔に、APPEND時にブラウザエンジン側に描画と非同期にコストを払わせるinnerHTMLの方がユーザーにとっていい
963Name_Not_Found:2011/10/26(水) 13:36:10.24 ID:???
Javascriptを体験しながら勉強しているのですが
エレメント.style.backgroundColorの
backgoroundColorを指定するのにbackground-colorとか全部小文字にしてて上手く行かず
backgroundColorと書けばいいと判明するのに結構時間がかかりました

皆さん、こういうのって全部覚えているのでしょうか?
それともこういうのが全部ズラーっと並んでる便利なサイトとかがあるのでしょうか?
964Name_Not_Found:2011/10/26(水) 13:39:18.15 ID:???
-は引き算として扱われるから、すべての-直後の一文字を大文字にすれば解決。
あとは、style["background-color"]=もあり。
965Name_Not_Found:2011/10/26(水) 13:46:14.13 ID:???
そんな法則があったんですか
だからbackground-Colorとかでダメだったんですね
ありがとうございます
966Name_Not_Found:2011/10/26(水) 13:49:23.60 ID:???
×すべての-直後の一文字を大文字に
○すべての-直後の一文字を大文字にして-を削除
967Name_Not_Found:2011/10/26(水) 13:50:07.08 ID:???
初めて知った。今まで全部テキトーに覚えてた
968Name_Not_Found:2011/10/26(水) 13:58:52.97 ID:???
>>962
そのためにドキュメントフラグメントが用意されてるだろ?
969Name_Not_Found:2011/10/26(水) 14:15:50.16 ID:???
innerHTMLはevalみたいで何かやだ
970Name_Not_Found:2011/10/26(水) 14:25:15.98 ID:???
tableの内容の書き換えが面倒すぎるinnerHTML使いたい
971Name_Not_Found:2011/10/26(水) 14:28:27.86 ID:???
0123456789
にinnerHTML +=0すると
もう一度01234567890って最初から全部描写するのがなぁ
今は全然問題ないけど、2000年頃のPCには結構なタイムラグが
972Name_Not_Found:2011/10/26(水) 15:14:43.59 ID:???
http://javascriptist.net/docs/libraries_colorpicker.htmlで紹介されているようなカラーピッカーを作りたいのですが
これはどのように作られているのでしょうか?
rgbで
0,0,0→0,0,255
1,0,0→1,0,255
2,0,0→2,0,255

255,255,0→255,255,255
としてforでループしながらdivを生成して、生成したdivにスタイルで対象のrgbを指定していってますが
処理が重すぎて固まってしまいます
973Name_Not_Found:2011/10/26(水) 15:32:30.83 ID:???
マウスの座標から一発で計算できるとは思いませんかそれ
divの代わりに同じように見えるグラデーション画像一枚用意すれば済むでしょ
974Name_Not_Found:2011/10/26(水) 15:38:53.65 ID:???
画像用意してその要素上の座標から割り出すってのが一番いいな
975Name_Not_Found:2011/10/26(水) 15:47:21.63 ID:???
>>971
それ回避する方法おしえて
976Name_Not_Found:2011/10/26(水) 15:49:29.94 ID:???
977Name_Not_Found:2011/10/26(水) 15:51:14.89 ID:???
でもjavascriptのライブラリに画像ファイルが見当たりません
978Name_Not_Found:2011/10/26(水) 15:59:57.50 ID:???
Color picker(ADV含む)以外見たが全部画像使ってるじゃんよ
979Name_Not_Found:2011/10/26(水) 16:00:39.69 ID:???
>>976
>>971(ただの文字の追加)と>>957(エレメントの追加)って同じなの?
980Name_Not_Found:2011/10/26(水) 16:13:28.30 ID:???
ライブラリの中身くらい自分で見ろよと思う
981Name_Not_Found:2011/10/26(水) 16:16:59.77 ID:???
流石にjQueryとかjQueryUIとかまでは解るが
そーいうメジャーとは言いがたいライブラリはちょっとなぁ
982Name_Not_Found:2011/10/26(水) 16:20:22.96 ID:???
ライブラリを使ったサンプルページのソースを見てないんかい
983Name_Not_Found:2011/10/26(水) 16:22:00.97 ID:9NHChTR2
>>979
エレメントの追加と考えるからいかん、ノードの追加なんだ
エレメントノードでもテキストノードでもやることは同じなんだ
984Name_Not_Found:2011/10/26(水) 16:23:12.84 ID:???
ブラウザで右クリックしても画像を保存が出てこなかったので画像じゃないと思ってました
jQuery color pickerをダウンロードしたところライブラリをダウンロードしたら画像だったことを確認しました
失礼いたしました
そこで画像情のマウスで計算できそうですが画像の色が変わるのはcanvasでRGBを変換して作るのが妥当でしょうか?
985Name_Not_Found:2011/10/26(水) 16:25:57.50 ID:???
んまーそういうライブラリってのは「誰にでも、どんな状況でも使えるように」してあるから
構造とかを理解して自分で1から作ると容量が1/10以下になったりするから
そーやって経験積むのもいいかな
986Name_Not_Found:2011/10/26(水) 16:43:02.98 ID:???
canvasにかわる代替手段があるならそちらを優先して使えって種子じゃなかったcanvasって
987Name_Not_Found:2011/10/26(水) 16:47:44.19 ID:???
>>983
>>971の例だとこんな感じ?
element.appendChild(document.createTextNode('0'));
988Name_Not_Found:2011/10/26(水) 16:56:15.50 ID:???
element.childNodes[0].data+=0;
989Name_Not_Found:2011/10/26(水) 16:58:37.20 ID:???
Lv足りなくて次スレ建てられません。どなたかおねがい〜。
今回はテンプレの変更は無しです。
990Name_Not_Found:2011/10/26(水) 21:06:51.84 ID:???
ajaxで返事が帰ってくるのを待ってる時によく見るくるくる回るようなやつはどうやって実装されているのでしょうか?
よく見かけるので多分プラグインか何かであると思いますが。
twitterでタイムライン読み込むときや、いろんなサイトで画像や動画を読み込む時などに見かけるやつです
名前わからなくてどう調べれば良いのかわかりませんでした、よろしくお願いします。
991Name_Not_Found:2011/10/26(水) 21:11:18.89 ID:???
通信開始でくるくる表示(gifアニメかな)
返事が帰ってきたらgif非表示・削除
992Name_Not_Found:2011/10/26(水) 21:12:16.59 ID:???
jQuery prettyLoader
993Name_Not_Found:2011/10/26(水) 21:20:37.56 ID:???
>>991,992
ありがとうございます!
994Name_Not_Found:2011/10/26(水) 21:33:40.53 ID:???
早く誰か次スレたてろや
995 忍法帖【Lv=6,xxxP】 :2011/10/26(水) 21:40:55.95 ID:???
今レベル上げてるから待て。
専ブラ使わず、web ブラウザもころころ変えてたせいだ。
996Name_Not_Found:2011/10/26(水) 21:58:21.77 ID:9NHChTR2
よし立ててくる
997Name_Not_Found:2011/10/26(水) 21:59:52.13 ID:9NHChTR2
とりあえず立った
これからテンプレ各種コピる
998Name_Not_Found:2011/10/26(水) 22:01:36.85 ID:???
レス番・・・
999Name_Not_Found:2011/10/26(水) 22:04:03.93 ID:9NHChTR2
しっぱいした
くびつってくる
http://hibari.2ch.net/test/read.cgi/hp/1319633963/
1000Name_Not_Found:2011/10/26(水) 22:05:08.70 ID:???
まぁ、良いってことよ。
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。