私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ+ JavaScript の質問用スレッド vol.133 +
JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
他人がどういうコード書こうと批判する気は無いけど
>だとしたら関数にstatic変数を持たせるのに都合がいいですが
これはちょっとわからない
>だとしたら関数にstatic変数を持たせるのに都合がいいですが
これはちょっとわからない
ふぅ、こんなピリピリした話をしてるなら
いつものようにjQueryの話題で盛り上がっていたほうが良いな
いつものようにjQueryの話題で盛り上がっていたほうが良いな
俺はSPAの実際のところが気になる
できるかどうか、難易、フレームワーク云々、以前にSPA必須な案件にまったく遭遇しない
できるかどうか、難易、フレームワーク云々、以前にSPA必須な案件にまったく遭遇しない
普通のサイトがSPA取り入れても
違和感が出るだけだしな。
クリックしたらページが変わるだろう所で変わらないから
違う、そうじゃないって思っちゃう
違和感が出るだけだしな。
クリックしたらページが変わるだろう所で変わらないから
違う、そうじゃないって思っちゃう
そんなもんトランジションアニメーションさせればいいだけの話。
アドレスバーのurlも自由自在よ。
アドレスバーのurlも自由自在よ。
>>215
$(document).on('click', '#hoge', function f(e) {
if (!f.fadeout) {
f.fadeout = _.debounce(() => {
$('#moge').fadeOut();
}, 10000);
}
// いろいろな処理
f.fadeout();
});
こんな感じに、関数の中から同一オブジェクトにアクセスしたい場合に使います
fadeout開始するまでの待ち時間に再び呼び出された時には
前回のfadeout予約がキャンセルされるような関数を、lodashのdebounceで作っています
jqueryのdelayとstopで同じことをしようとしたのですが何故かうまくいかなかったので。
これが唯一の実装方法でないのは当然ですが、複雑さを関数の中だけに閉じ込めるのがシンプルで好みです
もっといい方法ありますか?
$(document).on('click', '#hoge', function f(e) {
if (!f.fadeout) {
f.fadeout = _.debounce(() => {
$('#moge').fadeOut();
}, 10000);
}
// いろいろな処理
f.fadeout();
});
こんな感じに、関数の中から同一オブジェクトにアクセスしたい場合に使います
fadeout開始するまでの待ち時間に再び呼び出された時には
前回のfadeout予約がキャンセルされるような関数を、lodashのdebounceで作っています
jqueryのdelayとstopで同じことをしようとしたのですが何故かうまくいかなかったので。
これが唯一の実装方法でないのは当然ですが、複雑さを関数の中だけに閉じ込めるのがシンプルで好みです
もっといい方法ありますか?
>>192で言ってることをどこでつかっとんそれ?
イベントは、発行/購読パターンが基本
Mediator もある。
仲介者、まとめ役、橋渡し役、管制塔
イベントキャンセルできるイベントキューのライブラリは、
オライリーの著者などの、外人が作っている
自分で作ったら、複雑すぎて大変
Stoyan Stefanov 著
JavaScriptパターン ―優れたアプリケーションのための作法、2011
オブジェクト指向JavaScript、2012
JavaScriptデザインパターン、Addy Osmani, 2013
Mediator もある。
仲介者、まとめ役、橋渡し役、管制塔
イベントキャンセルできるイベントキューのライブラリは、
オライリーの著者などの、外人が作っている
自分で作ったら、複雑すぎて大変
Stoyan Stefanov 著
JavaScriptパターン ―優れたアプリケーションのための作法、2011
オブジェクト指向JavaScript、2012
JavaScriptデザインパターン、Addy Osmani, 2013
setTimeoutの戻り値を自関数の中で管理するだけで済むように見えるんだが、こういう挙動が欲しいのではないのか?
document.getElementById('mybutton').addEventListener( 'click', function f(){
var delay = 3000;
if( ( 'timeoutId' in f ) === false )
f.timeoutId = false;
if( f.timeoutId !== false )
clearTimeout(f.timeoutId);
f.timeoutId = setTimeout( function(){
f.timeoutId = false;
/* my oparation */
}, delay );
}, false );
目印は別にfalseでなくてもいいが
document.getElementById('mybutton').addEventListener( 'click', function f(){
var delay = 3000;
if( ( 'timeoutId' in f ) === false )
f.timeoutId = false;
if( f.timeoutId !== false )
clearTimeout(f.timeoutId);
f.timeoutId = setTimeout( function(){
f.timeoutId = false;
/* my oparation */
}, delay );
}, false );
目印は別にfalseでなくてもいいが
>>218
何を言っているのか分かりません
何を言っているのか分かりません
>>223
目的の挙動はこれで合っているのか間違っているのか、だけが欲しい
目的の挙動はこれで合っているのか間違っているのか、だけが欲しい
>>225
>この関数名は、関数内からしか参照できないのでしょうか?
>だとしたら関数にstatic変数を持たせるのに都合がいいですが、
「関数名」を「参照できる範囲(private性)」について、「だとしたら」で繋いでいるから
>この関数名は、関数内からしか参照できないのでしょうか?
>だとしたら関数にstatic変数を持たせるのに都合がいいですが、
「関数名」を「参照できる範囲(private性)」について、「だとしたら」で繋いでいるから
質問スレにはままあることですが
回答者に回るレベルに至っていない連中がちょっと回答者に回りすぎでは?
もう少しわきまえて下さい
分かりましたね?
回答者に回るレベルに至っていない連中がちょっと回答者に回りすぎでは?
もう少しわきまえて下さい
分かりましたね?
>>226
合っているのだな
合っているのだな
>>228
ええ、無駄に複雑ですね。無駄に。
ええ、無駄に複雑ですね。無駄に。
$('#hoge').on('hoge',(e)=>{
console.log('hoge');
});
$(document).trigger('hoge');
このように上位要素でtriggerしても下位の要素で受け取ることは出来ません
上位で受け取ってコールバックするような機構が必要だと思いますが
どうやるのが定石なのでしょうか?
console.log('hoge');
});
$(document).trigger('hoge');
このように上位要素でtriggerしても下位の要素で受け取ることは出来ません
上位で受け取ってコールバックするような機構が必要だと思いますが
どうやるのが定石なのでしょうか?
>>229
バカが回答をりかいできなくて逆ギレしだすのも質問スレにはよくある
バカが回答をりかいできなくて逆ギレしだすのも質問スレにはよくある
結局>>192をどうつかってるのか分からんだよね
>>232
jqueryスレへどうぞ
jqueryスレへどうぞ
> 関数外部からhoge();
> としたらエラーになります
こことかpublic/privateの話だよね
> としたらエラーになります
こことかpublic/privateの話だよね
>>242
何の話?
何の話?
わからんね。簡素じゃなくて冗長なクソコードなら
>>220にあるけどそれのことかな?w
なにがクソかというと無駄なことしてるから。
clearTimeoutが無効な値を渡しても例外でないのは保証されてるのだから
>>220はこれだけでいい。これがクソコードである根拠
やらなくて良いことをやるのは丁寧なのではなく単に無駄なだけ
document.getElementById('mybutton').addEventListener( 'click', function f(){
var delay = 3000;
clearTimeout(f.timeoutId);
f.timeoutId = setTimeout( function(){
/* my oparation */
}, delay );
}, false );
そしてもちろんこれはライブラリを使えば、もっと簡素に実現できる
$('#mybutton').click(_.debounce(function() {
/* my oparation */
}, 3000));
非ライブラリのコードも簡素に書けないやつが、
ライブラリよりも簡素に書けるとか言わないほうが良い
恥をかくだけだぞw
>>220にあるけどそれのことかな?w
なにがクソかというと無駄なことしてるから。
clearTimeoutが無効な値を渡しても例外でないのは保証されてるのだから
>>220はこれだけでいい。これがクソコードである根拠
やらなくて良いことをやるのは丁寧なのではなく単に無駄なだけ
document.getElementById('mybutton').addEventListener( 'click', function f(){
var delay = 3000;
clearTimeout(f.timeoutId);
f.timeoutId = setTimeout( function(){
/* my oparation */
}, delay );
}, false );
そしてもちろんこれはライブラリを使えば、もっと簡素に実現できる
$('#mybutton').click(_.debounce(function() {
/* my oparation */
}, 3000));
非ライブラリのコードも簡素に書けないやつが、
ライブラリよりも簡素に書けるとか言わないほうが良い
恥をかくだけだぞw
>>217
単に_.debounceの使い方が良くない
_.debounce は オリジナルのイベントハンドラを
遅延実行機能付のイベントハンドラに変えるもの
と考えたほうが良い
そこに書いたコードは、これだけでいい
$(document).on('click', '#hoge', _.debounce(function() {
$('#moge').fadeOut();
// いろいろな処理
}, 3000));
jQueryのstopはよく分からんね。俺もアニメーションはあまり使わないので。
俺が言えることは今はCSSを使ったほうが良いということぐらいだろう
stopだけで単体で実行したらキャンセルされるが、stop().delay()みたいに
続けるとキャンセルできないアニメーションのキュー(?)の絡みの仕様なんだろうけど
ドキュメントにも、setTimeoutを置き換えるものじゃないと書いてあるので
http://api.jquery.com/delay/
setTimeoutをそのまま使うか、lodashでラップされた関数を使うほうが良いのだろう
単に_.debounceの使い方が良くない
_.debounce は オリジナルのイベントハンドラを
遅延実行機能付のイベントハンドラに変えるもの
と考えたほうが良い
そこに書いたコードは、これだけでいい
$(document).on('click', '#hoge', _.debounce(function() {
$('#moge').fadeOut();
// いろいろな処理
}, 3000));
jQueryのstopはよく分からんね。俺もアニメーションはあまり使わないので。
俺が言えることは今はCSSを使ったほうが良いということぐらいだろう
stopだけで単体で実行したらキャンセルされるが、stop().delay()みたいに
続けるとキャンセルできないアニメーションのキュー(?)の絡みの仕様なんだろうけど
ドキュメントにも、setTimeoutを置き換えるものじゃないと書いてあるので
http://api.jquery.com/delay/
setTimeoutをそのまま使うか、lodashでラップされた関数を使うほうが良いのだろう
やっぱり俺がいないとスレのレベルが下がるなw
jQueryを使ったコードだけでなく、
ネイティブのコードもね
jQueryを使ったコードだけでなく、
ネイティブのコードもね
>>244
旧泥でclearTimeoutにundefinedを渡すとエラー吐くことがあった気がするが
nullや、あと確かfalseだとエラーを吐かない
LS仕様ではdo nothingと決められていることや
ライブラリではその辺の扱いを別所で定義しているから行数が減ることは間違いない
見て読みやすいコードは無駄ではないことも間違いないとは思うが
旧泥でclearTimeoutにundefinedを渡すとエラー吐くことがあった気がするが
nullや、あと確かfalseだとエラーを吐かない
LS仕様ではdo nothingと決められていることや
ライブラリではその辺の扱いを別所で定義しているから行数が減ることは間違いない
見て読みやすいコードは無駄ではないことも間違いないとは思うが
今ちらっとlodashのgithubを見てきたがdebounce.jsのcancelで以下のように確認を入れてから
cancelTimerでclearTimeoutしているところから見ても、少なくとも無駄ではないと思う
というより、事前確認が無駄ならlodashのこの記述も無駄になるような
if (timerId !== undefined) {
cancelTimer(timerId)
}
cancelTimerでclearTimeoutしているところから見ても、少なくとも無駄ではないと思う
というより、事前確認が無駄ならlodashのこの記述も無駄になるような
if (timerId !== undefined) {
cancelTimer(timerId)
}
>>247
そういうことを考慮したとしてもこれだけですむ
冗長なことに変わりはないよ
document.getElementById('mybutton').addEventListener( 'click', function f(){
var delay = 3000;
if (f.timeoutId) clearTimeout(f.timeoutId);
f.timeoutId = setTimeout( function(){
f.timeoutId = undefined;
/* my oparation */
}, delay );
}, false );
そういうことを考慮したとしてもこれだけですむ
冗長なことに変わりはないよ
document.getElementById('mybutton').addEventListener( 'click', function f(){
var delay = 3000;
if (f.timeoutId) clearTimeout(f.timeoutId);
f.timeoutId = setTimeout( function(){
f.timeoutId = undefined;
/* my oparation */
}, delay );
}, false );
>>249
clearTimeoutに渡す内容の確認はクソコードかつ無駄ではなく必要なものだったと
認めたということで良いかな
初期化は好み次第だと思うけどね
javascriptではプロパティは事前定義しなくてもいいというのは正直どうかと思うところがある
clearTimeoutに渡す内容の確認はクソコードかつ無駄ではなく必要なものだったと
認めたということで良いかな
初期化は好み次第だと思うけどね
javascriptではプロパティは事前定義しなくてもいいというのは正直どうかと思うところがある
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.113 + (1001) - [97%] - 2014/1/25 12:46
- + JavaScript の質問用スレッド vol.135 + (1002) - [97%] - 2018/11/23 10:30
- + JavaScript の質問用スレッド vol.123 + (1002) - [97%] - 2015/4/27 23:30
- + JavaScript の質問用スレッド vol.130 + (974) - [97%] - 2016/10/26 14:18
- + JavaScript の質問用スレッド vol.113 + (1001) - [97%] - 2014/3/15 21:30
- + JavaScript の質問用スレッド vol.131 + (1000) - [97%] - 2017/1/25 8:01
- + JavaScript の質問用スレッド vol.130 + (1001) - [97%] - 2017/11/25 20:45
- + JavaScript の質問用スレッド vol.131 + (1004) - [97%] - 2018/3/7 13:30
- + JavaScript の質問用スレッド vol.132 + (1001) - [97%] - 2018/4/19 11:00
- + JavaScript の質問用スレッド vol.134 + (1001) - [97%] - 2018/8/3 23:15
- + JavaScript の質問用スレッド vol.123 + (966) - [97%] - 2020/10/20 2:30
- + JavaScript の質問用スレッド vol.136 + (1001) - [97%] - 2019/1/8 11:30
- + JavaScript の質問用スレッド vol.139 + (1001) - [97%] - 2019/5/27 15:15
- + JavaScript の質問用スレッド vol.137 + (1003) - [97%] - 2019/3/26 11:46
- + JavaScript の質問用スレッド vol.143 + (753) - [97%] - 2020/4/19 5:00
- + JavaScript の質問用スレッド vol.103 + (1001) - [97%] - 2012/11/9 15:30
- + JavaScript の質問用スレッド vol.138 + (1004) - [97%] - 2019/4/20 23:45
トップメニューへ / →のくす牧場書庫について