のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,640,387人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

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

JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
701 : Name_Not - 2014/08/18(月) 11:41:11.19 ID:???.net (-29,-17,-12)
ようこそ
702 : Name_Not - 2014/08/18(月) 12:39:06.29 ID:???.net (-16,+29,-59)
http://peace.2ch.net/test/read.cgi/hp/1400313626/
なんでこんなスレがあるのに追い出したがってjQueryスレにしたがるの?
乱立って他のスレ7.8レスしかない頭のおかしい人が立てたスレってすぐわかるのに
703 : Name_Not - 2014/08/18(月) 12:39:44.17 ID:???.net (+22,+29,-3)
皮肉が伝わらないとは
704 : Name_Not - 2014/08/18(月) 12:57:39.86 ID:???.net (+35,+30,-113)
>>702
そこはjQuery以外をここに誘導する作為的なスレ
そこをまともと思っているなら君も相当おかしい
もしくは、君はjQuery以外をここに誘導したいの?

まともな人ならライブラリ総合スレに誘導すると思うけどね
プログラム板誘導者はまともじゃないからjQuery以外の書き込みを追い出したいか、
jQuery信者がこのスレにいる事を諦めて他をプログラム板に誘導しているか、のどちらかでしょう
705 : Name_Not - 2014/08/18(月) 13:21:14.69 ID:???.net (+37,+29,-60)
>>704
jQueryで検索しただけでそこまで事情知らないしw
vol4までいってんだからそれなりに繁盛してるんだろう程度にしか思ってない

ム板に誘導してるのはローカルルール無視してるアホ
706 : Name_Not - 2014/08/18(月) 13:23:10.31 ID:???.net (+33,+29,-24)
>>705
誘導するならスレッドの内容をよく読んだほうが良いよ
小さな行為が余計な火種を生むからね
707 : Name_Not - 2014/08/18(月) 16:35:08.48 ID:RH5yWiUcm (+8,+23,-1)
だね
708 : Name_Not - 2014/08/18(月) 16:38:04.74 ID:???.net (+32,+29,-30)
イベントをデレゲートすると速くなるといいますが
既にデレゲートして付けるイベントハンドラの数も相当なものになっています
やはりデレゲートしている場合でもイベントハンドラの削減に努めるべきでしょうか?
709 : Name_Not - 2014/08/18(月) 16:44:27.02 ID:???.net (-16,-24,-32)
たとえばドロップダウンごとに
"#hoge a"のようなセレクタでクリックハンドラを設定しているのですが
ドロップダウンアイテムのクリックを受けるハンドラをひとつ設定して
その先でドロップダウンを判定し、分岐した方がいいんじゃないか
と思ってきました
皆さんはどうやっていますか?
711 : Name_Not - 2014/08/19(火) 04:50:53.30 ID:???.net (-27,-30,-66)
offsetWidth/Height=コンテンツ+パディング+ボーダー
clientWidth/Height=コンテンツ+パディング
ということは分かりましたが、コンテンツのサイズを取得するにはどうしたらいいですか?
712 : Name_Not - 2014/08/19(火) 05:17:38.47 ID:???.net (+25,+29,-22)
>>709
原則として「無関係なコードを混ぜるな」に従えば良い
715 : Name_Not - 2014/08/19(火) 17:39:33.80 ID:???.net (-29,-30,-188)
clientWidth/HeightはjqueryのinnerWidth/Heightと同じと思いきや
スクロールバーがある時はその領域を含まないと分かりました
jqueryのinnerWidth/Height、width/heightと同等機能を実現するには
offsetWidth/Heightからパディングとボーダーを減算して算出するしかないと思われます
この認識はあってますか?
717 : Name_Not - 2014/08/19(火) 21:38:46.69 ID:???.net (-27,-30,+0)
// Get document width or height
if ( elem.nodeType === 9 ) {
doc = elem.documentElement;

// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], whichever is greatest
// unfortunately, this causes bug #3838 in IE6/8 only, but there is currently no good, small way to fix it.
return Math.max(
elem.body[ "scroll" + name ], doc[ "scroll" + name ],
elem.body[ "offset" + name ], doc[ "offset" + name ],
doc[ "client" + name ]
);
}

return value === undefined ?
// Get width or height on the element, requesting but not forcing parseFloat
jQuery.css( elem, type, extra ) :

// Set width or height on the element
jQuery.style( elem, type, value, extra );
}, type, chainable ? margin : undefined, chainable, null );
};
});
});
718 : Name_Not - 2014/08/19(火) 22:18:07.10 ID:???.net (+27,+29,-31)
jqueryのソースですか
これを見ても何をしているのか正直よく分かりません
分かる人教えて下さい
719 : Name_Not - 2014/08/20(水) 00:27:58.04 ID:???.net (-23,-30,-193)
displayがnoneの時はoffsetWidthが0になるのに気付きました
しかしjqueryでは計測可能です
visibilityをhiddenにしてから、displayをnone以外にして
計測後、また元に戻す
みたいなことをしていると思われます
ですが、displayが非noneの時のdisplayはどうやったら分かるのでしょうか?
style属性にnoneを直接指定している場合、style.display=''とやればいいでしょうが
cssが適用された結果noneになっている場合は難解だと思われます
720 : Name_Not - 2014/08/20(水) 00:45:06.46 ID:???.net (+10,+15,-13)
>>719
いい加減うざい。
jQueryのソースコード嫁と言ってる。
721 : Name_Not - 2014/08/20(水) 00:56:09.13 ID:???.net (+27,+29,-14)
このままjQueryの話でもしましょうか?
722 : Name_Not - 2014/08/20(水) 00:56:38.40 ID:???.net (+27,+29,-10)
分からないからと言って不快になられても困りますね
たしかにこれは難問なのですが
723 : Name_Not - 2014/08/20(水) 01:02:22.88 ID:???.net (+27,+29,-18)
この人には理解できないし、今後も理解できないだろう
トライアンドエラーも仕様書を読むことも質問の仕方も知らない人は素直にライブラリを使っておくべき
724 : Name_Not - 2014/08/20(水) 01:05:01.34 ID:???.net (-29,-30,-192)
まず一二行目

// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {

height系とwidth系にそれぞれ同じ処理をしている所から
heightとwidthは高さと幅の違いだけで同じように求めることができることがわかる。
725 : Name_Not - 2014/08/20(水) 01:10:33.91 ID:???.net (+33,+30,-56)
どうせ解説してもまた別の場所で躓いてすぐに泣きつくに決まってる
調べ方を覚えないとどうしようもないが、自分で試して挙動を確認するとか仕様書を読むとか、
この人は面倒くさいことは自分でしないのでどうしようもない
726 : Name_Not - 2014/08/20(水) 01:13:35.93 ID:???.net (+21,+28,-3)
おまえら親切だな
727 : Name_Not - 2014/08/20(水) 01:23:31.10 ID:???.net (+33,+30,-104)
> たしかにこれは難問なのですが
本当に難問か?
jQueryと同等機能を実現するにはjQueryのコードを読むだけでいい
他人のコードを読むのは時間がかかるが、足がかりがある以上、先は見えてる
本当の難問はどこから手をつけて良いか分からないものだと思うが
728 : Name_Not - 2014/08/20(水) 01:28:43.81 ID:???.net (-20,-30,-169)
#test {
height: 32px;
}

$('#test').hide();
console.log($('#test').height());

このコードをjqueryで実行すると32になりますが
jquery互換で名高いzepto.jsで実行すると0になります
zeptoの作者もこの問題に気付いていないのでしょう
表示する前にサイズを知りたい、ということはあるので、決して些細な問題とは言えませんが、
解決は難解
S級問題です
732 : Name_Not - 2014/08/20(水) 03:25:17.84 ID:???.net (-21,-30,-129)
難解さにくじけそうになりましたが
domdashとjqueryのhasClassを100万回ループさせると
domdash: 540.000ms
jquery: 5596.000ms
と約10倍の差があるので、方向性は間違ってないですよね
733 : Name_Not - 2014/08/20(水) 04:33:11.99 ID:???.net (+34,+29,+0)
>>732
大間違い。
理由はいわん。
734 : Name_Not - 2014/08/20(水) 05:17:11.82 ID:???.net (-26,-30,-235)
jqueryの処理をデバッガで追っていき、確認したところ
ブロック要素であろうとなかろうと、
display: block;
position: absolute;
visibility: hidden;
を一時的に設定して計測していました
それを真似したところ、インライン要素でもjqueryと同じ値が取れました
つまり非none時のdisplayを知る必要などなかったのでした。
しかしブロック要素以外の要素を絶対配置のブロック要素に変換しても
サイズが変わらないのは、妙な気がします。
jqueryがそうしているので、そうなるのでしょうが、
何故そうなるんでしょう?
要素の種類は表示のされ方も変える気がするのですが・・
735 : Name_Not - 2014/08/20(水) 05:18:37.42 ID:???.net (+31,+29,-7)
>>733
なんで理由言わないんですかw
説得力ゼロと言わざるを得ませんね
738 : Name_Not - 2014/08/20(水) 06:21:04.16 ID:???.net (+27,+29,-1)
>>733
理由いえねーのかよwwwwww
739 : Name_Not - 2014/08/20(水) 08:56:16.10 ID:???.net (+21,+28,-4)
そんなに理由が知りたいのか?w
740 : Name_Not - 2014/08/20(水) 09:51:51.22 ID:???.net (+29,+29,-29)
>>728
仕様書とコード読めば解決できる問題は難解とはいわん
おまえにとって難問なだけ

>>734
おまえ仕様書をまともに読んだことないだろ
CSSの勉強をやり直せ
741 : Name_Not - 2014/08/20(水) 11:12:47.20 ID:???.net (+17,+29,-18)
>>737
DOM含んでおいて純粋JSとかばっかじゃねーの?
742 : Name_Not - 2014/08/20(水) 13:42:10.06 ID:???.net (+31,+29,-59)
>>740
結局のところjqueryの作者ですら実現不可能で、妥協するしかなかったのですから
十分難解だと思いますが?
問題を把握出来ていないと言わざるを得ませんね
743 : Name_Not - 2014/08/20(水) 14:54:03.24 ID:???.net (+25,+29,-15)
>>728
後出しぶりが酷い
インライン要素とかどこにも書いてないし、質問の仕方を学んでから出直してきたら?
744 : Name_Not - 2014/08/20(水) 15:00:14.57 ID:???.net (+35,+29,-19)
ここまで分かりにくく質問できるのはある意味才能だな
745 : Name_Not - 2014/08/20(水) 15:34:07.28 ID:???.net (+36,+30,-39)
>>744
表示時は要素の種類にかかわらずサイズ計測できるのですから
ブロック要素以外も計測可能できるようにするのは当たり前ですが?
そもそもむしろブロック要素決めうちなら問題にすらならないんですから。
ちゃんと問題の本質理解してます?
>>744
質問が分かりにくいのではなく問題自体が難解なのです
746 : Name_Not - 2014/08/20(水) 15:34:55.35 ID:???.net (+31,+28,-4)
>>639の質問に答えられる人はいないのでしょうか?
747 : Name_Not - 2014/08/20(水) 15:56:19.09 ID:???.net (-19,-29,-71)
>>745
そういう前提を初めから整理して書くべきだろ
>>728 は「diplay: none だから計測できない」以外に読めないわ

しかも、width は display: inline では指定できないし、clientWidth がインラインボックスで0になる仕様だし
君が仕様を理解してないのはよくわかったから、仕様を読んで仕様どおりに作ることから始めろ
749 : Name_Not - 2014/08/20(水) 16:20:48.56 ID:???.net (+30,+30,-72)
>>747
A級以上の技術者には書かなくても分かることなので書かなかったのです
A級以上でなければ問題を理解することすら困難な種類の問題なので。
インライン要素にwidthを指定できないから何なの??
そんなことはこの問題とは何の関係もない
分からなければ分からないでいいのです
意地になって頓珍漢なディスをするのはやめなさい
それが技術的向上への道です
750 : Name_Not - 2014/08/20(水) 16:28:36.93 ID:???.net (+25,+29,-40)
A級とかS級とか馬鹿じゃないの?
ナルシストっぷりもうざいわ
まあ、どうせ「負け犬の遠吠えは見苦しいですよ」的な発言を返してくるんだろうけど
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について