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

みんなの評価 :
レスフィルター : (試験中)
そう?
引数が文字列か数字かオブジェクトか関数
みたいな関数造ったときとか、わりと必要なんじゃね?
判別
引数が文字列か数字かオブジェクトか関数
みたいな関数造ったときとか、わりと必要なんじゃね?
判別
お前らGoogle.ioの発表見たか?
ついにAIがWebサイト経由でフォームとか使って予約とかしてくるようになるそうだな
つまりフルCanvasとかメチャクチャなサイトは駄目ということだ
勿論10年後までにはそういうのもなくなるとは思うけどな
ついにAIがWebサイト経由でフォームとか使って予約とかしてくるようになるそうだな
つまりフルCanvasとかメチャクチャなサイトは駄目ということだ
勿論10年後までにはそういうのもなくなるとは思うけどな
>>600
これはさすがに三流思考
これはさすがに三流思考
>>599
この呼び出し方だとTypeError: evt.target.id is not a functionとなるようです
>>600
clickイベントなのですがリスナーは1つしか使わないで
event.target.idで処理をするか判別してるため
関係ないidも渡される可能性があります
if (event.target.id == "foo") {
foo(evt);
} else if (event.target.id == "bar") {
bar(evt);
}
(switch含めて)こうすれば問題はないし
処理をわけずベタ書きすれば問題はないのですが読みにくく長くなりすぎるので…
この呼び出し方だとTypeError: evt.target.id is not a functionとなるようです
>>600
clickイベントなのですがリスナーは1つしか使わないで
event.target.idで処理をするか判別してるため
関係ないidも渡される可能性があります
if (event.target.id == "foo") {
foo(evt);
} else if (event.target.id == "bar") {
bar(evt);
}
(switch含めて)こうすれば問題はないし
処理をわけずベタ書きすれば問題はないのですが読みにくく長くなりすぎるので…
>>603
オプショナル関数呼び出しってどんなの?
オプショナル関数呼び出しってどんなの?
>>606
グローバル関数なら、グローバルオブジェクトのプロパティとして参照可能
だが、HTMLにjsコードを埋め込むようなものなので、id属性値に関数名を埋め込まない方が良い
foo,barに何をさせるつもりか知らんが、一元管理するなら、処理の実行条件があるはずで、それを元に処理分けを行う
WeakMapで要素ノードに関数を結びつけれるほうほうもあるが、個別処理を一元管理するのは相反するものを強引に繋げているようなもので、他に良い実装があると思う
グローバル関数なら、グローバルオブジェクトのプロパティとして参照可能
だが、HTMLにjsコードを埋め込むようなものなので、id属性値に関数名を埋め込まない方が良い
foo,barに何をさせるつもりか知らんが、一元管理するなら、処理の実行条件があるはずで、それを元に処理分けを行う
WeakMapで要素ノードに関数を結びつけれるほうほうもあるが、個別処理を一元管理するのは相反するものを強引に繋げているようなもので、他に良い実装があると思う
いや関数であるとは限らんぞ
何れにせよevalしなきゃならんのはどうかと思うが
何れにせよevalしなきゃならんのはどうかと思うが
>>606
> clickイベントなのですがリスナーは1つしか使わないで
> event.target.idで処理をするか判別してるため
それが間違いだからそれを直せば?
jQueryならこれでいいだろ?
$('#foo, #bar, #baz').click(function() {
・・・
});
処理を分けたいなら3つかけばいい。
$('#foo').click(function() {
・・・
});
> clickイベントなのですがリスナーは1つしか使わないで
> event.target.idで処理をするか判別してるため
それが間違いだからそれを直せば?
jQueryならこれでいいだろ?
$('#foo, #bar, #baz').click(function() {
・・・
});
処理を分けたいなら3つかけばいい。
$('#foo').click(function() {
・・・
});
IDごとに専用のリスナー関数を作る・・・正解
IDが違うけど、なぜかリスナー関数をまとめて
せっかくまとめたのに、IDごとの専用の関数に分岐させる・・・無駄なことをしている
IDが違うけど、なぜかリスナー関数をまとめて
せっかくまとめたのに、IDごとの専用の関数に分岐させる・・・無駄なことをしている
このガイジはすべてのプログラムを一人で書くんだと思ってるんだろうな
他人が読んでもわかるようなコードをかこう
なんでこう書いたんですか?今までそうやってきたから
などというのはやめよう
なんでこう書いたんですか?今までそうやってきたから
などというのはやめよう
>>605
有効性の判定とその他の判定を一緒くたに話すのはどうかと思うよ
有効性の判定とその他の判定を一緒くたに話すのはどうかと思うよ
そういうのは、Ruby on Rails など、フレームワークが使うメタプログラミングだけ
動的に関数名が増える場合に、define_method で、動的に関数定義する。
この場合は、事前に関数名が書けないから
Lodash とか、誰かのライブラリに、
動的に関数定義する、デザインパターンは無いのか?
動的に関数名が増える場合に、define_method で、動的に関数定義する。
この場合は、事前に関数名が書けないから
Lodash とか、誰かのライブラリに、
動的に関数定義する、デザインパターンは無いのか?
レスありがとうございます
jQueryは使ってないのですが
window.addEventListener("click", function(evt){
if (evt.target.id == "foo")...
if (evt.target.id == "bar")...
},false);
ではなく
document.querySelector('#foo').addEventListener('click', ...
document.querySelector('#bar').addEventListener('click', ...
のようにしろということでしょうか?
そうするとwindow.onloadで読み込ませないと動かないようですが
window.addEventLister('load', function(){
document.querySelector('#foo').addEventListener('click', ...
document.querySelector('#bar').addEventListener('click', ...
}, false);
こんな感じにすればよいのでしょうか?
jQueryは使ってないのですが
window.addEventListener("click", function(evt){
if (evt.target.id == "foo")...
if (evt.target.id == "bar")...
},false);
ではなく
document.querySelector('#foo').addEventListener('click', ...
document.querySelector('#bar').addEventListener('click', ...
のようにしろということでしょうか?
そうするとwindow.onloadで読み込ませないと動かないようですが
window.addEventLister('load', function(){
document.querySelector('#foo').addEventListener('click', ...
document.querySelector('#bar').addEventListener('click', ...
}, false);
こんな感じにすればよいのでしょうか?
>>616も言ってるが固有情報のidはやめたほうがいい
classNameのようなnodesならいいんじゃね?
じゃないとnodesに片っ端から適用するセンス0のマヌケコードになる
windowに1つだけイベントつけて発火した都度に発生源から調べると
ifを通す分cpuには負担だが微々たるもんだし
メモリには優しい設計だしリークも起きにくい
classNameのようなnodesならいいんじゃね?
じゃないとnodesに片っ端から適用するセンス0のマヌケコードになる
windowに1つだけイベントつけて発火した都度に発生源から調べると
ifを通す分cpuには負担だが微々たるもんだし
メモリには優しい設計だしリークも起きにくい
Event Listener は、漏れなら、1つにまとめないで、わかりやすい所で、複数個に分ける。
まあ、要素が親子関係なら、1つにまとめるかも
1つにまとめると、分岐処理が出来るから、コードが複雑になる
まあ、要素が親子関係なら、1つにまとめるかも
1つにまとめると、分岐処理が出来るから、コードが複雑になる
初心者は、役割ごとに関数を分けない。
やってる処理で関数を分けようとする
やってる処理で関数を分けようとする
>>622
jQueryを使え。onloadなんか使わずとも
$(document).on('click', '#foo', function() { ... })
$(document).on('click', '#bar', function() { ... })
ってかけばいい
jQueryを使え。onloadなんか使わずとも
$(document).on('click', '#foo', function() { ... })
$(document).on('click', '#bar', function() { ... })
ってかけばいい
scriptタグはbody閉じタグ直前に書く
もしくはdefer属性を使う
セオリーを守れば今時jQueryとかいらんし
もしくはdefer属性を使う
セオリーを守れば今時jQueryとかいらんし
>scriptタグはbody閉じタグ直前に書く
lint脳だとheaderに書きたがるからな
lint脳だとheaderに書きたがるからな
scriptタグをbody閉じタグ直前に書いても
動的に要素が追加される場合には対応できないんだよな
動的に要素が追加される場合には対応できないんだよな
jQuery使え云々はおいといて別にload時に追加すればよくね?
なんとなく生理的に嫌なコードなのはわかるよ
jQueryほどじゃないけど
なんとなく生理的に嫌なコードなのはわかるよ
jQueryほどじゃないけど
そういや昔無限に円周率を表示するページが有ったけど、
DOMContentLoadedっていつ発動するの?
DOMContentLoadedっていつ発動するの?
>>634
あー、やっぱり永久に発動しないんだ。
ってことはさ、普通のサイトでも僅かな時間とはいえ、
画面は表示されてるけど、ページが全部読み込み終わってないって
タイミングが有るわけだから、やっぱりheadに入れるのがいいんじゃないの?
あー、やっぱり永久に発動しないんだ。
ってことはさ、普通のサイトでも僅かな時間とはいえ、
画面は表示されてるけど、ページが全部読み込み終わってないって
タイミングが有るわけだから、やっぱりheadに入れるのがいいんじゃないの?
発生するでしょ
ずっと同期的に書き加えてたらブラウザがハングアップしかねないし表示が更新されないかもしれないから
連続表示というのは間隔を開けるのが当たり前でその隙間で発生するでしょ
それにもし仮にJS実行が途切れないとしたらイベントループが回らないんだからハンドラが実行されるはずがないでしょう
ずっと同期的に書き加えてたらブラウザがハングアップしかねないし表示が更新されないかもしれないから
連続表示というのは間隔を開けるのが当たり前でその隙間で発生するでしょ
それにもし仮にJS実行が途切れないとしたらイベントループが回らないんだからハンドラが実行されるはずがないでしょう
>>636
永遠に円周率を表示するサイトっていうのは、
</body>が永遠に来ないってことだよ。
もっとも該当のサイトはただのテキストページだったけどね
でもHTMLでずーっと</body>が登場しないページは作れるし、
巨大なページで格安SIMで速度制限されてるときとかさ、
ページの上の部分は表示されてるけど、終わりはまだ来てないってことあるでしょ?
永遠に円周率を表示するサイトっていうのは、
</body>が永遠に来ないってことだよ。
もっとも該当のサイトはただのテキストページだったけどね
でもHTMLでずーっと</body>が登場しないページは作れるし、
巨大なページで格安SIMで速度制限されてるときとかさ、
ページの上の部分は表示されてるけど、終わりはまだ来てないってことあるでしょ?
>>635
コンテンツ表示からjs実行までのタイムラグを減らすなら、該当JTMLの直後に<script>を書くだろうに、なぜ<head>がいいという結論になるんだ?
コンテンツ表示からjs実行までのタイムラグを減らすなら、該当JTMLの直後に<script>を書くだろうに、なぜ<head>がいいという結論になるんだ?
>>637
> 発生するでしょ
DOMContentLoaded = DOMを全部読み込み終わってから発動する
= DOMを全部読み込み終わってないんだから発動しないよ
DOMContentLoaded が発生するまで
ブラウザはレンダリングしないわけじゃないんだから
ブラウザはハングアップしたりしない。
> 発生するでしょ
DOMContentLoaded = DOMを全部読み込み終わってから発動する
= DOMを全部読み込み終わってないんだから発動しないよ
DOMContentLoaded が発生するまで
ブラウザはレンダリングしないわけじゃないんだから
ブラウザはハングアップしたりしない。
>>638
HTML出力途中なら、DOMContentLoadedも発火しないと思うが、試してみたのか?
HTML出力途中なら、DOMContentLoadedも発火しないと思うが、試してみたのか?
>>639
そりゃ「該当HTML」が複数あった場合、
それぞれに<script>を置くのか?って話だよ
例えば、同じclassの要素が複数あったら
全部の要素の後に<script>を書く?多重読込してしまうなw
そりゃ「該当HTML」が複数あった場合、
それぞれに<script>を置くのか?って話だよ
例えば、同じclassの要素が複数あったら
全部の要素の後に<script>を書く?多重読込してしまうなw
>>644
自分で書いたことを忘れてない?
> コンテンツ表示からjs実行までのタイムラグを減らすなら、
そうコンテンツ表示からjs実行までのタイムラグを(極限まで)減らしたい。
> 読み込みたい要素を全て出力した後に一回書けばいいだろ
読み込みたい要素を全て出力するまでタイムラグがある
自分で書いたことを忘れてない?
> コンテンツ表示からjs実行までのタイムラグを減らすなら、
そうコンテンツ表示からjs実行までのタイムラグを(極限まで)減らしたい。
> 読み込みたい要素を全て出力した後に一回書けばいいだろ
読み込みたい要素を全て出力するまでタイムラグがある
>>645
だから、</body>の手前で<script>を書けって言ってるのは俺じゃないって。
だから、</body>の手前で<script>を書けって言ってるのは俺じゃないって。
そのMutationObserverはどこで読み込むのでしょうかねぇ(苦笑)



類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.109 + (1001) - [97%] - 2013/10/7 13:16
- + JavaScript の質問用スレッド vol.135 + (1002) - [97%] - 2018/11/23 10:30
- + JavaScript の質問用スレッド vol.130 + (974) - [97%] - 2016/10/26 14:18
- + JavaScript の質問用スレッド vol.129 + (981) - [97%] - 2016/5/5 8:16
- + JavaScript の質問用スレッド vol.130 + (1001) - [97%] - 2017/11/25 20:45
- + JavaScript の質問用スレッド vol.129 + (926) - [97%] - 2017/7/27 13:45
- + JavaScript の質問用スレッド vol.131 + (1004) - [97%] - 2018/3/7 13:30
- + JavaScript の質問用スレッド vol.132 + (1001) - [97%] - 2018/4/19 11:00
- + JavaScript の質問用スレッド vol.133 + (1001) - [97%] - 2018/6/8 10:45
- + JavaScript の質問用スレッド vol.131 + (1000) - [97%] - 2017/1/25 8:01
- + JavaScript の質問用スレッド vol.134 + (1001) - [97%] - 2018/8/3 23:15
- + JavaScript の質問用スレッド vol.136 + (1001) - [97%] - 2019/1/8 11:30
- + JavaScript の質問用スレッド vol.137 + (1003) - [97%] - 2019/3/26 11:46
- + JavaScript の質問用スレッド vol.138 + (1004) - [97%] - 2019/4/20 23:45
- + JavaScript の質問用スレッド vol.119 + (1002) - [97%] - 2014/10/3 15:30
- + JavaScript の質問用スレッド vol.116 + (1002) - [95%] - 2014/7/1 0:45
- + JavaScript の質問用スレッド vol.115 + (1001) - [95%] - 2014/5/29 16:16
トップメニューへ / →のくす牧場書庫について