JavaScript を自ら学ぶ人のための質問スレッドです。
次スレは>>950が(本スレで改善案があれば考慮して)立ててください
■規則/推奨ルール
・メール欄を空欄にし、名前にレス番を入れることを強く推奨(なりすまし防止)
・質問内容は具体的に。言葉だけでなく、出来る限り再現性を確認したサンプルコードの掲示。
・質問テンプレートの利用推奨。
・質問への「答え」だけでなく「意見」を出しても良い。
■禁止行為
・丸投げ質問
・迷惑スクリプトの質問
・オレオレ用語の使用(一般的な用語を使用する事)
・煽り、批判等の他人を不快にさせる行為(批判の代わりに「AよりBが良い」のような代案を出す事)
■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。(ex: IE8, Firefox4)
【条件】期待する回答の条件を書いてください。(ex: jQuery不可, フレームワーク不可)
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(Windows なら「コピット」を活用)
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
1レスに収まらないならコード投稿サイトを利用してください。
http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/
■回答者へ
・回答には多様性があります。他人の回答を尊重してください
・動作ブラウザや環境が限られる場合は、それを明記してください
・他人の回答を批判する代わりに、自分ならこう書くという例を示してください
・質問者がJavaScriptでなければ実現できないと勘違いしてるなら、その否定としてHTMLとCSSで実装しても良い
・他人の回答を見たくないのであれば、文句をつける代わりにNGにして見えないようにしてください。文句をつける=荒らしです
+ JavaScript の質問用スレッド vol.132 +
■ このスレッドは過去ログ倉庫に格納されています
2018/03/06(火) 18:46:23.71ID:???
2018/03/10(土) 17:13:09.02ID:???
タイプタイパータイペストwwwww
2018/03/10(土) 17:13:47.22ID:???
>>106
違う
違う
2018/03/10(土) 17:16:51.86ID:???
2018/03/10(土) 17:18:22.18ID:???
document.addEventListener("click", function)
2018/03/10(土) 17:19:23.93ID:???
>>104-105
発火した要素やparentNode再帰で、idやclassNameを見て切り分けたりする
jqueryのclassNameでのハンドリングがdocumentじゃなかったっけか
当然、<button>の中に<span>が入ってたりすると複雑化したり処理が多くなるが
どっちかっていうと
バブリングを踏まえて処理組んでたり
時系列的に同時に走られるとまずかったり
バブリング停止が混ざると厄介だったり、というほうの影響が大きいと思う
>>109
<div id="p1"><button>b1</button><button>b2</button></div>
document.getElementById('p1').addEventListener( 'click', function(){
if(e.target.tagName==='button'){ /* proc */ }
}, false );
みたいな
発火した要素やparentNode再帰で、idやclassNameを見て切り分けたりする
jqueryのclassNameでのハンドリングがdocumentじゃなかったっけか
当然、<button>の中に<span>が入ってたりすると複雑化したり処理が多くなるが
どっちかっていうと
バブリングを踏まえて処理組んでたり
時系列的に同時に走られるとまずかったり
バブリング停止が混ざると厄介だったり、というほうの影響が大きいと思う
>>109
<div id="p1"><button>b1</button><button>b2</button></div>
document.getElementById('p1').addEventListener( 'click', function(){
if(e.target.tagName==='button'){ /* proc */ }
}, false );
みたいな
2018/03/10(土) 17:19:33.16ID:???
>>107
添付 天パ テンペスト
添付 天パ テンペスト
2018/03/10(土) 17:21:17.13ID:???
また髪の話してる・・・
2018/03/10(土) 17:25:25.34ID:???
プログラミング業界ではdelegateは移譲を意味する
一般的な用語でおそらくインターネットが普及する以前から使われてきた用語だけど、
今の話の文脈のdelegateはjQueryが発端なのかな?
jQueryでは1.4.2からdelegateというこのイベントを親で受け取る機能が追加された
(他にも似たようなliveというメソッドがあったがこれらはイベント関連全てを扱うonに統合された)
果たしてこのjQueryのdelegate以前から使われていたのかどうか
ちなみにjQueryだと>>111のような面倒くさいことは必要なく
$('button').on('click', function() {・・・}) だと
$(document).on('click', 'button', function() {・・・}) と書き換えるだけでいい
多くの場合イベントハンドラの中身はそのまま使える、
またdocumentの代わりにbuttonの上位要素でも良い
一般的な用語でおそらくインターネットが普及する以前から使われてきた用語だけど、
今の話の文脈のdelegateはjQueryが発端なのかな?
jQueryでは1.4.2からdelegateというこのイベントを親で受け取る機能が追加された
(他にも似たようなliveというメソッドがあったがこれらはイベント関連全てを扱うonに統合された)
果たしてこのjQueryのdelegate以前から使われていたのかどうか
ちなみにjQueryだと>>111のような面倒くさいことは必要なく
$('button').on('click', function() {・・・}) だと
$(document).on('click', 'button', function() {・・・}) と書き換えるだけでいい
多くの場合イベントハンドラの中身はそのまま使える、
またdocumentの代わりにbuttonの上位要素でも良い
2018/03/10(土) 17:26:13.85ID:???
2018/03/10(土) 17:26:43.62ID:???
平日家に届く荷物
通常: 自分が家にいないと受け取れない
(再配達あるが例ということで)
デリゲート: 平日家にいる家族に自分宛荷物を受け取っといてくれと頼んどく
現実だといちいち頼まなくても家族が勝手に取っといてくれるだろうがコンピューターは融通がきかないのだ。
余計なことしないとも言う。勝手に開けられてて死亡したことあるしなw
通常: 自分が家にいないと受け取れない
(再配達あるが例ということで)
デリゲート: 平日家にいる家族に自分宛荷物を受け取っといてくれと頼んどく
現実だといちいち頼まなくても家族が勝手に取っといてくれるだろうがコンピューターは融通がきかないのだ。
余計なことしないとも言う。勝手に開けられてて死亡したことあるしなw
117111
2018/03/10(土) 17:28:54.32ID:??? >>111のfunctionの引数指定 (e) が抜けてた
まあ上位が取って、下位にイベントを当てる、みたいな雰囲気を理解してもらえればいい
プログラミング的にはできるだけ影響を少なく直上の要素などで受けるのが健全
個別にidをつけたり個別にaddEventListenerしたり、としなくてもいい等の利点がある
といっても高尚なパターンとかじゃなくて
誰でも思いついてやってることだと思う
まあ上位が取って、下位にイベントを当てる、みたいな雰囲気を理解してもらえればいい
プログラミング的にはできるだけ影響を少なく直上の要素などで受けるのが健全
個別にidをつけたり個別にaddEventListenerしたり、としなくてもいい等の利点がある
といっても高尚なパターンとかじゃなくて
誰でも思いついてやってることだと思う
2018/03/10(土) 17:32:12.24ID:???
なんでもdocumentで受けるのは
グローバル変数使い放題みたいな印象があるな
グローバル変数使い放題みたいな印象があるな
2018/03/10(土) 17:32:30.35ID:???
それよりliが動的に足し引きされるやつとかの対応だろ
動けばいいや派はここで積む
動けばいいや派はここで積む
2018/03/10(土) 17:35:18.21ID:???
>>119
そりゃcreateElementするときに個別にaddEventListenerしてからappendChildすれば済む
問題が出るのは、innerHTML操作しかできないわからない層ぐらいじゃね
そりゃcreateElementするときに個別にaddEventListenerしてからappendChildすれば済む
問題が出るのは、innerHTML操作しかできないわからない層ぐらいじゃね
121114
2018/03/10(土) 17:38:01.52ID:??? 書き忘れたが、今の話のdelegateがjQuery由来ではないのか?というのと
もう一つ、なんでもdocumentというのは、liveメソッドが原因じゃないのか?ということ
jQuery 1.4.2で追加されたdelegateは親要素を指定することができるのだが、
それよりも前に1.3から追加されたliveは親要素は指定できずにdocumentになっていた
(これがわかりづらいという意見があって最終的にonに統一されたのだけれども)
$( "button" ).live( "click", function() {・・・}) だと
buttonではなくdocumentで受け取るようになっていたわけだ
もう一つ、なんでもdocumentというのは、liveメソッドが原因じゃないのか?ということ
jQuery 1.4.2で追加されたdelegateは親要素を指定することができるのだが、
それよりも前に1.3から追加されたliveは親要素は指定できずにdocumentになっていた
(これがわかりづらいという意見があって最終的にonに統一されたのだけれども)
$( "button" ).live( "click", function() {・・・}) だと
buttonではなくdocumentで受け取るようになっていたわけだ
2018/03/10(土) 17:41:11.50ID:???
2018/03/10(土) 17:49:36.60ID:???
>>122
でも当時はdelegateなんて考えなかったからね
だからこそjQueryは内部の処理を隠蔽して
魔法のような機能をしてますみたいな感じだった
また移譲の認識を広めたのもjQuery 1.7から追加されたonメソッドなわけで
ウェブプログラマとDOM APIにかなりの影響を与えたライブラリだな
その数年後にDOM APIにようやくセレクタを使ったアクセスや
比較方法が追加されたわけだしね
でも当時はdelegateなんて考えなかったからね
だからこそjQueryは内部の処理を隠蔽して
魔法のような機能をしてますみたいな感じだった
また移譲の認識を広めたのもjQuery 1.7から追加されたonメソッドなわけで
ウェブプログラマとDOM APIにかなりの影響を与えたライブラリだな
その数年後にDOM APIにようやくセレクタを使ったアクセスや
比較方法が追加されたわけだしね
2018/03/10(土) 17:56:16.76ID:???
2018/03/10(土) 18:04:50.18ID:???
2018/03/10(土) 18:05:22.30ID:???
>>96
イベントバブリングを少しでも減らすためと思ってる
document.bodyにしないのは、HTMLタグの<body>が省略されてたり、2つ以上書かれてたりすると、
Javascript側のdocument.bodyが不定になるっぽいから
>>111
jQueryのon()を見た感じでは、指定された要素そのものにaddEventListener()してるっぽい
さすがにdocumentだけで全部を処理していると、targetの管理・分岐が大きくなりすぎて処理が重くなると思う
<button><img></button>
という構造の場合、<img>でイベントが発生した場合にevent.targetは<img>になるから、parentNodeをたどって、<button>に内包されてるか確認しなきゃいけない
jQueryもparentNodeをたどってる
第三者のライブラリを使うと自分で書く必要がなくなるというだけの話
イベントバブリングを少しでも減らすためと思ってる
document.bodyにしないのは、HTMLタグの<body>が省略されてたり、2つ以上書かれてたりすると、
Javascript側のdocument.bodyが不定になるっぽいから
>>111
jQueryのon()を見た感じでは、指定された要素そのものにaddEventListener()してるっぽい
さすがにdocumentだけで全部を処理していると、targetの管理・分岐が大きくなりすぎて処理が重くなると思う
<button><img></button>
という構造の場合、<img>でイベントが発生した場合にevent.targetは<img>になるから、parentNodeをたどって、<button>に内包されてるか確認しなきゃいけない
jQueryもparentNodeをたどってる
第三者のライブラリを使うと自分で書く必要がなくなるというだけの話
2018/03/10(土) 18:08:06.15ID:???
>>126
指定された要素そのものにaddEventListenerしているということは
その後に追加された同名classNameを持つ要素に対応できないということになるんだが
それとも、要素追加を監視して逐一リスナ貼り付けてるのか?
指定された要素そのものにaddEventListenerしているということは
その後に追加された同名classNameを持つ要素に対応できないということになるんだが
それとも、要素追加を監視して逐一リスナ貼り付けてるのか?
2018/03/10(土) 18:10:11.74ID:???
>>126
> jQueryのon()を見た感じでは、指定された要素そのものにaddEventListener()してるっぽい
そうだよ。こっそりdocumentになっていたのは古いliveメソッドの話
だからdocumentで受け取るなら
$(document).on('click', 〜
とする。
そして本来の要素は第二引数に、このように書く
$(document).on('click', 'button', 〜
親要素で受け取るという考え方が広まったので、普通に親イベントで受け取る
だけど、簡単に本来受け取りたかった要素 'button' を指定するのは引数一個と簡単で、
さらにthisは本来受け取りたかった要素になっている
> jQueryのon()を見た感じでは、指定された要素そのものにaddEventListener()してるっぽい
そうだよ。こっそりdocumentになっていたのは古いliveメソッドの話
だからdocumentで受け取るなら
$(document).on('click', 〜
とする。
そして本来の要素は第二引数に、このように書く
$(document).on('click', 'button', 〜
親要素で受け取るという考え方が広まったので、普通に親イベントで受け取る
だけど、簡単に本来受け取りたかった要素 'button' を指定するのは引数一個と簡単で、
さらにthisは本来受け取りたかった要素になっている
2018/03/10(土) 18:11:00.64ID:???
>>127
classNameで指定されたらclassNameでチェックすればいいだけでしょ
classNameで指定されたらclassNameでチェックすればいいだけでしょ
2018/03/10(土) 18:12:10.77ID:???
>>127
> 指定された要素そのものにaddEventListenerしているということは
> その後に追加された同名classNameを持つ要素に対応できないということになるんだが
だから普通にdocumentにon(addEventListener)するんだってばw
そしてonメソッドの第二引数に「指定された要素」を指定することで
まるで「指定された要素」そのものにaddEventListenerしたかのように
違いを吸収してくれている
> 指定された要素そのものにaddEventListenerしているということは
> その後に追加された同名classNameを持つ要素に対応できないということになるんだが
だから普通にdocumentにon(addEventListener)するんだってばw
そしてonメソッドの第二引数に「指定された要素」を指定することで
まるで「指定された要素」そのものにaddEventListenerしたかのように
違いを吸収してくれている
2018/03/10(土) 18:13:01.00ID:???
2018/03/10(土) 18:14:33.97ID:???
>>131
その結果がjQueryの複雑なチェック方法なのでは
その結果がjQueryの複雑なチェック方法なのでは
2018/03/10(土) 18:22:21.21ID:???
documentをリスナ追加対象にすれば重くなる
最小限の親要素をリスナ追加対象にすればその外に生じた要素に対応できない
対象を考えなきゃいけないのはjqueryなしと変わらない
どこにリスナが追加されるかを意識して使わないといけないのはjqueryなしと変わらない
なんでもかんでもdocumentに追加していては問題が生じる危険がある
いずれにしてもjqueryを使わず普通にできる
なるほど
最小限の親要素をリスナ追加対象にすればその外に生じた要素に対応できない
対象を考えなきゃいけないのはjqueryなしと変わらない
どこにリスナが追加されるかを意識して使わないといけないのはjqueryなしと変わらない
なんでもかんでもdocumentに追加していては問題が生じる危険がある
いずれにしてもjqueryを使わず普通にできる
なるほど
2018/03/10(土) 18:26:59.86ID:???
Jqueryは結局のところ初心者向けじゃないのかな
JQ無しでjs仕様がわかっててJQ無しでコード書けててJQの挙動がしっかり把握できてる人
が一行一文字でも書く文字減らしたいために使う
JQ無しでjs仕様がわかっててJQ無しでコード書けててJQの挙動がしっかり把握できてる人
が一行一文字でも書く文字減らしたいために使う
2018/03/10(土) 18:44:05.61ID:???
DOMはJavaScript初心者には難しすぎる
jQueryはJavaScript初心者にちょうどいい
jQueryはJavaScript初心者にちょうどいい
2018/03/10(土) 20:12:56.49ID:???
jQuery のソースコードには、IE9 なら、Android 4 ならとか、数十の分岐処理がある
JS で作る人は、これらの分岐処理でバグるから、正常に動作させるのに、10年以上掛かる
例えば、素のJSでは、要素の削除も、一旦その要素の親を取得してから、
親から見て、子供を削除する
var elem = document.getElementById('abc');
elem.parentNode.removeChild(elem);
こういうように書かないと、IE11 では動かない。
だから一々、どのブラウザでは動かないとか、頭を抱える
素のJSで作っている奴は、調べものばっかりして、頭を抱えているけど、
バグの多い製品しか作れないw
基本、調べものばかりしている奴は、コーディングの練習にもならないし、
時間を浪費して、上達しないから最悪
JS で作る人は、これらの分岐処理でバグるから、正常に動作させるのに、10年以上掛かる
例えば、素のJSでは、要素の削除も、一旦その要素の親を取得してから、
親から見て、子供を削除する
var elem = document.getElementById('abc');
elem.parentNode.removeChild(elem);
こういうように書かないと、IE11 では動かない。
だから一々、どのブラウザでは動かないとか、頭を抱える
素のJSで作っている奴は、調べものばっかりして、頭を抱えているけど、
バグの多い製品しか作れないw
基本、調べものばかりしている奴は、コーディングの練習にもならないし、
時間を浪費して、上達しないから最悪
2018/03/10(土) 20:17:15.01ID:???
グローバル変数相当に名前空間とクロージャそれぞれどういう長所短所ある?
前者はその都度MyApp.つけなくてはならず
ここの皆はどっち使ってる?
前者はその都度MyApp.つけなくてはならず
ここの皆はどっち使ってる?
2018/03/10(土) 20:24:02.46ID:???
どっちかしか使わないなんてない
名前空間といっても要するに1つのオブジェクトに押し込めるかどうかだけだし
名前空間といっても要するに1つのオブジェクトに押し込めるかどうかだけだし
2018/03/10(土) 20:47:24.77ID:???
>>136
今時趣味で作るならモダンブラウザオンリーで十分だと思うよ
仮に仕事でIE対応が必要だとしても、考え方が反対だと思う
やっぱり、対応方法はわかってるけど、自作するのは面倒くさい
そこで効果を理解してるライブラリを使うというのが正常だと思う
jQueryを何の為かどういう仕組みか分からず使ってる状態っていうのは
絶対に困る場面が出るし、jQueryの良さを引き出せないよ
今時趣味で作るならモダンブラウザオンリーで十分だと思うよ
仮に仕事でIE対応が必要だとしても、考え方が反対だと思う
やっぱり、対応方法はわかってるけど、自作するのは面倒くさい
そこで効果を理解してるライブラリを使うというのが正常だと思う
jQueryを何の為かどういう仕組みか分からず使ってる状態っていうのは
絶対に困る場面が出るし、jQueryの良さを引き出せないよ
2018/03/10(土) 20:51:51.34ID:???
今の時代は便利なものをどれだけ使いこなすかのほうが重要になっている
2018/03/10(土) 20:58:50.02ID:???
jQueryあにき今日も全開っすね( ´∀`)bグッ!
2018/03/10(土) 21:00:09.08ID:???
LSの機能使いたいけど、非対応ブラウザにも対応させたいけど、自分で書くのめんどい!人限定ライブラリ
2018/03/10(土) 21:01:09.03ID:???
>>140
なんか言うことが営業っぽい
なんか言うことが営業っぽい
2018/03/10(土) 21:47:48.46ID:???
2018/03/10(土) 21:59:53.65ID:???
>>138
どう使い分けてる?
どう使い分けてる?
2018/03/10(土) 22:34:40.91ID:???
>>145
使い分けという時点でなんか違う気がしないでもないんだけど
・どう使いたいか・あとから変更したいかどう変更したいか
・状態を持たせたいか持たせるときどんな感じで使うのか
・1個だけあればいいか複数複製したいかnewしたいのかコンストラクタ次第で色々変えたいか
とか色々ある、んだけど
でも手法全体は変えないで後から変更調整を
したいときでもわりとどうにでもなるよね
使い分けという時点でなんか違う気がしないでもないんだけど
・どう使いたいか・あとから変更したいかどう変更したいか
・状態を持たせたいか持たせるときどんな感じで使うのか
・1個だけあればいいか複数複製したいかnewしたいのかコンストラクタ次第で色々変えたいか
とか色々ある、んだけど
でも手法全体は変えないで後から変更調整を
したいときでもわりとどうにでもなるよね
2018/03/10(土) 23:29:09.80ID:???
148Name_Not_Found
2018/03/11(日) 11:21:14.91ID:Gy/uaNyu グローバル変数を1つ宣言するのと
関数を1つ宣言するのとでは
グローバルの汚染度は変わらないですよね?
関数を1つ宣言するのとでは
グローバルの汚染度は変わらないですよね?
2018/03/11(日) 11:37:34.87ID:???
>>148
console.log(globalOsen?'汚染されてる!':'汚染されてない');
var globalOsen = 'キャラメル';
と
console.log(globalOsen?'汚染されてる!':'汚染されてない');
function globalOsen() {
return 'キャラメル';
}
比べてみなよ。
console.log(globalOsen?'汚染されてる!':'汚染されてない');
var globalOsen = function() {
return 'キャラメル';
};
なら変わらないけど。
console.log(globalOsen?'汚染されてる!':'汚染されてない');
var globalOsen = 'キャラメル';
と
console.log(globalOsen?'汚染されてる!':'汚染されてない');
function globalOsen() {
return 'キャラメル';
}
比べてみなよ。
console.log(globalOsen?'汚染されてる!':'汚染されてない');
var globalOsen = function() {
return 'キャラメル';
};
なら変わらないけど。
2018/03/11(日) 12:03:35.32ID:???
なんで汚染だけローマ字なんだよ
グローバルもローマ字にしろや
グローバルもローマ字にしろや
2018/03/11(日) 12:04:51.10ID:???
2018/03/11(日) 12:11:47.07ID:???
こんな式を見たのですが、これは何ですか?
var data = ('' == 0 ? '' : '');
var data = ('' == 0 ? '' : '');
2018/03/11(日) 12:19:37.29ID:???
いいえ、あなたはそんな式を見ていません
2018/03/11(日) 12:24:51.79ID:???
>>153
過去スレで見ましたよ?
過去スレで見ましたよ?
2018/03/11(日) 12:25:35.10ID:???
>>150
そんなことしたらキャラメルが意味不明になるじゃん
そんなことしたらキャラメルが意味不明になるじゃん
2018/03/11(日) 12:27:22.76ID:???
かんちがいしてた。グローバルをローマ字にって話かw
2018/03/11(日) 12:29:38.91ID:???
>>149
順番が逆
var globalOsen = 'キャラメル';
console.log(globalOsen?'汚染されてる!':'汚染されてない');
function globalOsen() {
return 'キャラメル';
}
console.log(globalOsen?'汚染されてる!':'汚染されてない');
順番が逆
var globalOsen = 'キャラメル';
console.log(globalOsen?'汚染されてる!':'汚染されてない');
function globalOsen() {
return 'キャラメル';
}
console.log(globalOsen?'汚染されてる!':'汚染されてない');
2018/03/11(日) 12:29:59.73ID:???
>>156
おじいちゃん?
おじいちゃん?
2018/03/11(日) 12:33:33.61ID:???
2018/03/11(日) 12:42:32.18ID:???
汚染ならfilthyだろ
低学歴め
低学歴め
2018/03/11(日) 12:43:10.52ID:???
あんまりグローバルに関数宣言しない方がいいんでしょうか?
2018/03/11(日) 12:43:59.55ID:???
>>160
キャラメルとかけてるさっむいギャグがわからんのか
キャラメルとかけてるさっむいギャグがわからんのか
2018/03/11(日) 12:49:30.07ID:???
>>161
関数も変数もないよ。使うところ以上にスコープ広げるな
関数も変数もないよ。使うところ以上にスコープ広げるな
2018/03/11(日) 13:18:09.70ID:???
var globalOsen = false;
console.log(globalOsen?'汚染されてる!':'汚染されてない');
console.log(globalOsen?'汚染されてる!':'汚染されてない');
2018/03/11(日) 13:27:22.01ID:???
2018/03/11(日) 13:59:08.64ID:???
空にDocumentFragmentに要素を追加していって、最後にそれをDOMツリーに追加する
という方法をjQueryでやるにはどうすればいいのでしょうか?
という方法をjQueryでやるにはどうすればいいのでしょうか?
2018/03/11(日) 14:13:06.21ID:???
×空にDocumentFragment
○空のDocumentFragment
でした
○空のDocumentFragment
でした
2018/03/11(日) 14:25:05.03ID:???
>>167-168
スレ違いだからこっち↓に書いといたよ
+ JavaScript & jQuery 質問用スレッド vol.8 +
http://mevius.5ch.net/test/read.cgi/hp/1510321470/66
スレ違いだからこっち↓に書いといたよ
+ JavaScript & jQuery 質問用スレッド vol.8 +
http://mevius.5ch.net/test/read.cgi/hp/1510321470/66
2018/03/11(日) 14:35:10.79ID:???
>>169
見ましたが書かれていませんでした
引数を指定しなければDocumentFragmentになるんじゃないかと思って
$()
にappendしてからbodyにappendToしてみたりしましたがうまくいきません
jqueryでDocumentFragmentを作成するにはどうすればいいのでしょうか?
見ましたが書かれていませんでした
引数を指定しなければDocumentFragmentになるんじゃないかと思って
$()
にappendしてからbodyにappendToしてみたりしましたがうまくいきません
jqueryでDocumentFragmentを作成するにはどうすればいいのでしょうか?
2018/03/11(日) 14:39:16.31ID:???
ちゃんと書かれてるじゃんw
+ JavaScript & jQuery 質問用スレッド vol.8 +
http://mevius.5ch.net/test/read.cgi/hp/1510321470/66
66 Name_Not_Found sage 2018/03/11(日) 14:23:30.11 ID:???
こっちに書けマヌケ
+ JavaScript & jQuery 質問用スレッド vol.8 +
http://mevius.5ch.net/test/read.cgi/hp/1510321470/66
66 Name_Not_Found sage 2018/03/11(日) 14:23:30.11 ID:???
こっちに書けマヌケ
2018/03/11(日) 14:46:11.07ID:???
2018/03/11(日) 14:47:48.87ID:???
>>167
Using jQuery's $.map() Method To Convert Data Into Detached DOM Node Buffers
https://www.bennadel.com/blog/2280-using-jquery-s-map-method-to-convert-data-into-detached-dom-node-buffers.htm
jQuery Appends Multiple Elements Using Efficient Document Fragments
https://www.bennadel.com/blog/2281-jquery-appends-multiple-elements-using-efficient-document-fragments.htm
Using jQuery's $.map() Method To Convert Data Into Detached DOM Node Buffers
https://www.bennadel.com/blog/2280-using-jquery-s-map-method-to-convert-data-into-detached-dom-node-buffers.htm
jQuery Appends Multiple Elements Using Efficient Document Fragments
https://www.bennadel.com/blog/2281-jquery-appends-multiple-elements-using-efficient-document-fragments.htm
2018/03/11(日) 14:53:19.28ID:???
クズめ
67 Name_Not_Found sage 2018/03/11(日) 14:50:07.36 ID:???
マヌケじゃないのでこっちにはかかない
67 Name_Not_Found sage 2018/03/11(日) 14:50:07.36 ID:???
マヌケじゃないのでこっちにはかかない
2018/03/11(日) 14:53:50.08ID:???
専用スレがある場合はそっちで聞いたほうが、より詳しい回答が得られることがある
2018/03/11(日) 14:59:26.95ID:???
普通にjQueryでDocumentFragmentをappendできるんだな。
http://jsfiddle.net/hc5ED/6/
>>173を読むと場合によっては内部でDocumentFragmentが
使われるようであまり意識しないで良いのかもしれないな
http://jsfiddle.net/hc5ED/6/
>>173を読むと場合によっては内部でDocumentFragmentが
使われるようであまり意識しないで良いのかもしれないな
2018/03/11(日) 15:00:40.75ID:???
>>173
ありがとうございます
しかし英語ということもありよく分かりませんでした
jQueryオブジェクトを配列に入れてappendしたら
それはdocumentFragmentにされてからappendされる
ということでしょうか?
ありがとうございます
しかし英語ということもありよく分かりませんでした
jQueryオブジェクトを配列に入れてappendしたら
それはdocumentFragmentにされてからappendされる
ということでしょうか?
2018/03/11(日) 15:01:01.47ID:???
2018/03/11(日) 15:07:37.82ID:???
>>176
$(document.createDocumentFragment())
という方法は自分もさっき思いついてやってみましたが
無理矢理jQueryを使ってるみたいな感じが若干引っかかります
ある程度抽象化した方法でdocumentFragmentを作る方法を
jQueryが提供していればいいのですが。
配列にして渡したら良きにはからうから気にするなということでしょうか
ありがとうございました
$(document.createDocumentFragment())
という方法は自分もさっき思いついてやってみましたが
無理矢理jQueryを使ってるみたいな感じが若干引っかかります
ある程度抽象化した方法でdocumentFragmentを作る方法を
jQueryが提供していればいいのですが。
配列にして渡したら良きにはからうから気にするなということでしょうか
ありがとうございました
2018/03/11(日) 15:09:59.21ID:???
>>177
多分そういうことなんじゃないかなって思うけどよくわからないね
単に複数の要素をいっぺんに追加したいだけならjQueryのメソッドで普通にできるし
正直DocumentFragmentを使うほど速度が必要なことってない。
もし本当に速度が必要ならそこだけ局所的にDOM API使うだけだし、
jQueryで明示的にDocumentFragmentを使おうって思ったことがないな
多分そういうことなんじゃないかなって思うけどよくわからないね
単に複数の要素をいっぺんに追加したいだけならjQueryのメソッドで普通にできるし
正直DocumentFragmentを使うほど速度が必要なことってない。
もし本当に速度が必要ならそこだけ局所的にDOM API使うだけだし、
jQueryで明示的にDocumentFragmentを使おうって思ったことがないな
2018/03/11(日) 15:12:59.05ID:???
>>179
> 無理矢理jQueryを使ってるみたいな感じが若干引っかかります
別にそんな事ないよ。
https://api.jquery.com/jQuery/#jQuery-element に書いてあるとおり、
jQuery関数($関数)の引数にDOM要素を使うのはごく普通のことで
よく使われる $(document) だってDOM要素を使ってる。
createDocumentFragmentで作られるのもDOM要素の一種なんだから
それはごく普通の使い方
> 無理矢理jQueryを使ってるみたいな感じが若干引っかかります
別にそんな事ないよ。
https://api.jquery.com/jQuery/#jQuery-element に書いてあるとおり、
jQuery関数($関数)の引数にDOM要素を使うのはごく普通のことで
よく使われる $(document) だってDOM要素を使ってる。
createDocumentFragmentで作られるのもDOM要素の一種なんだから
それはごく普通の使い方
2018/03/11(日) 15:45:22.87ID:???
var variable = variable || 'char'; // 'char'以外でも123でもfunctionでも、あるいは2個でなく3個4個でも
この式は、どういう理屈で動いているんでしょうか?
variableの内容がundefinedだけでなくfalseになる値であっても内容が変わってしまう点はおいておくとしても
variableの内容に入りうるのがbooleanだけでないことや
||を&&に変えると右辺全体がtrueにならないと値が変更されないこと
||を&&に変えると右辺全体がtrueになるときでも&&で区切られた最後の値がvariableに入ることなど
どういう動作をするものなのか理解できません
この式は、どういう理屈で動いているんでしょうか?
variableの内容がundefinedだけでなくfalseになる値であっても内容が変わってしまう点はおいておくとしても
variableの内容に入りうるのがbooleanだけでないことや
||を&&に変えると右辺全体がtrueにならないと値が変更されないこと
||を&&に変えると右辺全体がtrueになるときでも&&で区切られた最後の値がvariableに入ることなど
どういう動作をするものなのか理解できません
2018/03/11(日) 15:54:26.47ID:???
右辺が云々は、単にvariableがfalsyなら新しい値を入れることを目的にしているから
入る値の方がbooleanだったりstringなのはそれで構わないコードなんだろう
要するにその変数に対してその段階に置けるデフォルト値を設定したい意図だと思う
入る値の方がbooleanだったりstringなのはそれで構わないコードなんだろう
要するにその変数に対してその段階に置けるデフォルト値を設定したい意図だと思う
2018/03/11(日) 15:56:51.99ID:???
論理演算子 - JavaScript | MDN
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Logical_Operators
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Logical_Operators
2018/03/11(日) 15:58:08.42ID:???
https://chrome.google.com/webstore/detail/save-my-eyes/mbhpdkldehghoilbopkcpfijdhnincmh?utm_source=chrome-app-launcher-info-dialog
このクロム拡張が勝手にマイニングしてるみたいなので暇なひとソースよんで解析して
自分にはわからなかった。
グーグルには不正行為通報したので削除されるのかな? 👀
Rock54: Caution(BBR-MD5:1777ba470a0705a8ff6b3177e04ccfb6)
このクロム拡張が勝手にマイニングしてるみたいなので暇なひとソースよんで解析して
自分にはわからなかった。
グーグルには不正行為通報したので削除されるのかな? 👀
Rock54: Caution(BBR-MD5:1777ba470a0705a8ff6b3177e04ccfb6)
2018/03/11(日) 16:03:50.28ID:???
>>185
面倒くさいんで、ソースコードどこかにアップして
面倒くさいんで、ソースコードどこかにアップして
2018/03/11(日) 16:03:59.62ID:???
>>184
ああ、javascriptの論理演算子の仕様そのものがそういう仕様なんですか
論理演算の結果はboolか、それか0 or 1で返す
ものだとばかり考えていて、特殊な構文か何かかと思っていました
ああ、javascriptの論理演算子の仕様そのものがそういう仕様なんですか
論理演算の結果はboolか、それか0 or 1で返す
ものだとばかり考えていて、特殊な構文か何かかと思っていました
2018/03/11(日) 16:42:58.24ID:???
>>187
結構多いぞ。こういう仕様の言語
結構多いぞ。こういう仕様の言語
2018/03/11(日) 17:02:42.46ID:???
>>188
他にはpythonくらいしか知らんわ
他にはpythonくらいしか知らんわ
2018/03/11(日) 17:44:13.35ID:???
cからして似たようなもんだった気が。
式1||式2の全体の評価結果は
式1の評価結果が0のとき式2の評価結果、
式1の評価結果が0以外のとき式1の評価結果(を直ちに返し式2は評価されない)
int a;
if (a = (3+2)||99) {
printf("%d", a);
}
結果は1ではなく5だったかと。
式1||式2の全体の評価結果は
式1の評価結果が0のとき式2の評価結果、
式1の評価結果が0以外のとき式1の評価結果(を直ちに返し式2は評価されない)
int a;
if (a = (3+2)||99) {
printf("%d", a);
}
結果は1ではなく5だったかと。
2018/03/11(日) 17:54:16.75ID:???
#include <stdio.h>
int main(){
int a;
a = ( 6 + 9 ) && ( 0 || 2 ) ;
printf("%d", a); // 1
}
int main(){
int a;
a = ( 6 + 9 ) && ( 0 || 2 ) ;
printf("%d", a); // 1
}
2018/03/11(日) 17:56:09.10ID:???
>>191
そうだっけ?そうだったらゴメン
そうだっけ?そうだったらゴメン
2018/03/11(日) 17:59:39.61ID:???
2018/03/11(日) 18:04:01.32ID:???
true/trueってなんだよtrue/falseです
2018/03/11(日) 18:08:48.24ID:???
2018/03/11(日) 18:20:47.03ID:???
下のコードが構造的にどうやって動いてるかいまいちよくわからない
formElementに2つの要素いれてそれにそれぞれイベントリスナーをついかしてるんだけど
なんでそれぞれ別個に作動するの?
2つめのformElementでcanvasHeightChange()を追加するときは
formElementに2つの要素がはいってるから両方にcanvasHeightChanged()が追加されるような気がするし
関数内でも別個に認識してcanvas.heightとcanvas.width変数を変更できる仕組みがよくわからない
<from>
canvas width: <input type="range" id="canvasWidth"
min="0" max="1000" step="1" value="500"> <br>
canvas Height: <input type="range" id="canvasHeight"
min="0" max="1000" step="1" value="500"><br>
</from>
formElement = document.getElementById("canvasWidth")
formElement.addEventListener('change', canvasWidthChanged, false)
formElement = document.getElementById("canvasHeight")
formElement.addEventListener('change', canvasHeightChanged, false)
function canvasWidthChanged(e) {
var target = e.target
theCanvas.width = target.value
drawScreen()
}
function canvasHeightChanged(e) {
var target = e.target
theCanvas.height = target.value
drawScreen()
}
formElementに2つの要素いれてそれにそれぞれイベントリスナーをついかしてるんだけど
なんでそれぞれ別個に作動するの?
2つめのformElementでcanvasHeightChange()を追加するときは
formElementに2つの要素がはいってるから両方にcanvasHeightChanged()が追加されるような気がするし
関数内でも別個に認識してcanvas.heightとcanvas.width変数を変更できる仕組みがよくわからない
<from>
canvas width: <input type="range" id="canvasWidth"
min="0" max="1000" step="1" value="500"> <br>
canvas Height: <input type="range" id="canvasHeight"
min="0" max="1000" step="1" value="500"><br>
</from>
formElement = document.getElementById("canvasWidth")
formElement.addEventListener('change', canvasWidthChanged, false)
formElement = document.getElementById("canvasHeight")
formElement.addEventListener('change', canvasHeightChanged, false)
function canvasWidthChanged(e) {
var target = e.target
theCanvas.width = target.value
drawScreen()
}
function canvasHeightChanged(e) {
var target = e.target
theCanvas.height = target.value
drawScreen()
}
2018/03/11(日) 18:43:57.11ID:???
フロム
2018/03/11(日) 18:47:17.08ID:???
199196
2018/03/11(日) 18:48:19.25ID:??? formElement = document.getElementById("canvasWidth") // ここでformElementにcanvasWidthをいれる
formElement.addEventListener('change', canvasWidthChanged, false) //formeElement経由でcanvasWidthの要素にcanvasWidthChanged()を付け足す
formElement = document.getElementById("canvasHeight") //上で入れた要素をは破棄されて中身が入れ替えられる
formElement.addEventListener('change', canvasHeightChanged, false) //ここでイベントリスナをついかする
ってことかな?
formElementの変数内でイベントリスナを管理してるわけななくて
経由して各要素に追加されてるってことなのかな?
formElement.addEventListener('change', canvasWidthChanged, false) //formeElement経由でcanvasWidthの要素にcanvasWidthChanged()を付け足す
formElement = document.getElementById("canvasHeight") //上で入れた要素をは破棄されて中身が入れ替えられる
formElement.addEventListener('change', canvasHeightChanged, false) //ここでイベントリスナをついかする
ってことかな?
formElementの変数内でイベントリスナを管理してるわけななくて
経由して各要素に追加されてるってことなのかな?
2018/03/11(日) 18:49:50.97ID:???
2018/03/11(日) 18:52:27.62ID:???
そろそろ、本は有害、って気がしてきた
2018/03/11(日) 18:55:51.00ID:???
その点webサイトは有益だよな!
2018/03/11(日) 19:04:34.30ID:???
なんで本の疑問をここで聞く?
本に作者のメールアドレスなり最近ならtwitterなり連絡先が書いてあるだろ
書いた人に聞くのが一番だよ、作者自身も今後の参考になるし
本に作者のメールアドレスなり最近ならtwitterなり連絡先が書いてあるだろ
書いた人に聞くのが一番だよ、作者自身も今後の参考になるし
2018/03/11(日) 19:10:46.95ID:???
javascriptの疑問かいたらあかんのかいなここ
じゃあ作者に聞くから英語に翻訳してくれ
じゃあ作者に聞くから英語に翻訳してくれ
2018/03/11(日) 19:16:04.65ID:???
>>199
その解釈で間違いないよ
その解釈で間違いないよ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「お客様、困ります!」ホテル朝食バイキングでタッパーに詰め出す夫婦に騒然 食べ放題でも“持ち帰り”は違法にあたる?弁護士解説 [少考さん★]
- 【内廷費】天皇ご一家のための費用360万円を窃取 宮内庁侍従職を懲戒免職… [BFU★]
- 埼玉 八潮 道路陥没 県知事“転落の車に人と思われる姿確認” [首都圏の虎★]
- 子ども7人が車にはねられる、意識あり 大阪・西成 [少考さん★]
- インパルス堤下さん 結婚を発表 「子どもも生まれます」 YouTubeチャンネルで報告 [首都圏の虎★]
- 「ブサイクばっかりやないか!」女性専用車両に乗り込んだ高齢男性、男性はダメと指摘され激昂 女性「恐怖、ショック」 ★4 [首都圏の虎★]
- ヤマト運輸、10月から宅急便の運賃を平均で3.5%値上げ [663766621]
- 【悲報】ヤマト運輸値上げ [668970678]
- 万博めたん「毎日3トン排出なのだ」 [931948549]
- 【緊急朗報】八潮市の下水道で人の姿を確認! [616817505]
- マー糞炎上wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
- 日本人、もう暴力革命しかないと気づき始める [402859164]