+ JavaScript の質問用スレッド vol.126 + [転載禁止]©2ch.net (742レス)
+ JavaScript の質問用スレッド vol.126 + [転載禁止]©2ch.net http://mevius.5ch.net/test/read.cgi/hp/1439005423/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
292: Name_Not_Found [] 2022/08/03(水) 20:52:18.36 ID:Nj6BOTMG ちょっと訂正。 var reset = () => { console.log(playing_flag); console.log("停止"); playing_flag = true; }; ↓ var reset = () => { console.log(playing_flag); console.log("停止"); playing_flag = false; }; http://mevius.5ch.net/test/read.cgi/hp/1439005423/292
293: Name_Not_Found [sage] 2022/08/03(水) 20:53:44.88 ID:??? その2回通ると思い込んでるif文はイベントハンドラでも何でもないんだからボタン押される前の1回しか通らないよ http://mevius.5ch.net/test/read.cgi/hp/1439005423/293
294: Name_Not_Found [] 2022/08/03(水) 21:00:45.56 ID:Nj6BOTMG え。意味がよくわからない。イベントハンドラじゃないから、1回しかとおらない。。?? http://mevius.5ch.net/test/read.cgi/hp/1439005423/294
295: Name_Not_Found [] 2022/08/03(水) 21:13:35.85 ID:Nj6BOTMG ずっとコードを眺めてみたら、 >>290のコードは確におかしいことは分かってきた気がする。 http://mevius.5ch.net/test/read.cgi/hp/1439005423/295
296: Name_Not_Found [sage] 2022/08/03(水) 21:37:07.14 ID:??? >>291,292のコードも、イベントリスナー使ってますけど。 2回クリックしてもelse文にはならず、if文を2回実行しているのでしょうか? http://mevius.5ch.net/test/read.cgi/hp/1439005423/296
297: Name_Not_Found [] 2022/08/03(水) 21:56:45.64 ID:Nj6BOTMG playing_flag = false; var run = () => { if(playing_flag === false){ console.log(playing_flag); console.log("再生中"); playing_flag = true; }else{ reset(); } }; var reset = () => { console.log(playing_flag); console.log("停止"); playing_flag = false; }; const btn = document.getElementById("button"); btn.addEventListener("click", run, false); 納得いかないけど、>>291,292を上のように変えたら、 期待した通りに動いた。 ボタンの状態に、フラグをつけて、実行に条件を入れるときは注意しないと いけんのかもなあ。 http://mevius.5ch.net/test/read.cgi/hp/1439005423/297
298: Name_Not_Found [sage] 2022/08/03(水) 22:04:04.33 ID:??? 納得いかない、ねえ? 開発者ツールでどういう順番でどの行の処理がされるか確認したらいいんじゃないかな http://mevius.5ch.net/test/read.cgi/hp/1439005423/298
299: Name_Not_Found [] 2022/08/03(水) 22:07:55.84 ID:Nj6BOTMG あ。そうですね。アドバイスありがとうございます。 http://mevius.5ch.net/test/read.cgi/hp/1439005423/299
300: Name_Not_Found [sage] 2022/08/03(水) 22:12:13.92 ID:??? >>297 むしろ、>>291でフラグ立ててイベントハンドラ振り分けてるのが最高に意味不明なんだが イベント駆動について勉強してみたら? http://mevius.5ch.net/test/read.cgi/hp/1439005423/300
301: Name_Not_Found [] 2022/08/03(水) 22:42:39.79 ID:Nj6BOTMG よくわかってなかったようだ。 下の認識でOKですか?雑ですが。。 「Javascriptはブラウザが開いたとき、上の行から下の行へ基本一回だけ実行する。 しかし、イベントが起きたら例外的にその箇所を実行する。」 http://mevius.5ch.net/test/read.cgi/hp/1439005423/301
302: Name_Not_Found [sage] 2022/08/04(木) 02:45:36.83 ID:??? >>301 HTMLスクリプト要素のdefer属性(DOMContentLoadedからの実行)とasync属性(HTMLScriptElement#onloadからの非同期実行) http://mevius.5ch.net/test/read.cgi/hp/1439005423/302
303: Name_Not_Found [] 2022/08/04(木) 03:10:03.94 ID:jGEKnkMs >>302ありがとうございます。詳しく調べてみます。 >>291,292を 開発者モードでトレースしてみたのですけど。 ボタンをクリックすると、直前の条件の評価をせずに、 いきなりrun()の中を実行はじめました。 カレントの変数を無視して、初回時の条件が適応されているようです。 多分。疑問に思う方が変なのかもしれませんが、これは慣れですかね。。 http://mevius.5ch.net/test/read.cgi/hp/1439005423/303
304: Name_Not_Found [sage] 2022/08/04(木) 03:13:38.61 ID:??? 例えば、HTMLスクリプト要素にasync属性が指定してあると、次の二つは共に実行されない。 new Promise(addEventListener.bind(this, 'DOMContentLoaded')).then(e => console.log(e)); await new Promise(addEventListener.bind(this, 'DOMContentLoaded')).then(e => console.log(e)); 例えば、次は1回クリックしたら次は無い。 new Promise(document.addEventListener.bind(document, 'click')).then(e => console.log(e)); >>301 これら当たり前過ぎる例を説明できますか? 今のJSは巨大なフレームワーク、1997年レベルから2022年レベルにするの大変だろうけど頑張ってね。 http://mevius.5ch.net/test/read.cgi/hp/1439005423/304
305: Name_Not_Found [sage] 2022/08/04(木) 23:22:36.77 ID:??? >>297 >var playing_flag = false; >if (playing_flag === false){ 処理 } playing_flag が真偽値・bool 型なら、単にこう書けば? if ( playing_flag ) 基本、boolを比較してはならない。 すでに、boolになっているから http://mevius.5ch.net/test/read.cgi/hp/1439005423/305
306: Name_Not_Found [sage] 2022/08/04(木) 23:38:01.22 ID:??? jQuery のon で、任意の要素に、任意のイベントを追加できる <button id="btn_1" class="btn btn-primary"> <span class="show-when-enabled">送信</span> <span class="show-when-disabled">送信中...</span> </button> <button id="btn_2">送信ボタンをenable にする</button> <style> button .show-when-enabled { display: initial; } button[disabled] .show-when-enabled { display: none; } button .show-when-disabled { display: none; } button[disabled] .show-when-disabled { display: initial; } </style> $( function ( ) { $( '#btn_1' ).on( 'click', function ( event ) { $( this ).prop( 'disabled', true ); // disable にする } ); $( '#btn_2' ).on( 'click', function ( event ) { $( '#btn_1' ).prop( 'disabled', false ); // enable にする } ); } ); http://mevius.5ch.net/test/read.cgi/hp/1439005423/306
307: Name_Not_Found [sage] 2022/08/05(金) 02:46:29.55 ID:??? もうjqueryスレと統合すべきだと思うの 両者の関連スレ合わせても勢い1すらないんだし http://mevius.5ch.net/test/read.cgi/hp/1439005423/307
308: Name_Not_Found [sage] 2022/08/05(金) 07:46:34.74 ID:??? jqueryを使わずにpure jsで、ていう質問も大いにありえるから 分けたほうがいいとおも http://mevius.5ch.net/test/read.cgi/hp/1439005423/308
309: Name_Not_Found [sage] 2022/08/05(金) 08:20:20.41 ID:??? JSスレはプログラム板のスレもあるんだよなあ 既にどちらも人がいないし、今から整理するのは無理そう + JavaScript の質問用スレッド vol.124 + https://mevius.5ch.net/test/read.cgi/tech/1636525464/ http://mevius.5ch.net/test/read.cgi/hp/1439005423/309
310: Name_Not_Found [sage] 2022/08/05(金) 08:35:50.13 ID:??? どっちでも良い。 答える方としては、素のJS で書くのは非常に面倒 jQuery は可読性が高いので、読めない香具師はいないから、 ひとまず、jQueryで書いて、 それを質問者が書き直したければ、素のJSで書き直せばよい http://mevius.5ch.net/test/read.cgi/hp/1439005423/310
311: Name_Not_Found [sage] 2022/08/05(金) 11:51:55.86 ID:??? jQueryスレやプログラム板でもいわれてるが、今は統合とかテンプレ修正とか、意欲ある人がいない + JavaScript & jQuery 質問用スレッド vol.7 + [無断転載禁止]©2ch.net https://mevius.5ch.net/test/read.cgi/hp/1478002550/683-687 + JavaScript の質問用スレッド vol.124 + https://mevius.5ch.net/test/read.cgi/tech/1636525464/253 >>307も統合を示唆してるが、「やりたいなら、お前が責任持ってやれ」といわれてもやらないだろ? 昔の風潮なら俺も手を貸しただろうが、今はやる気が全く起きないわ まともな感性で保守する人は皆無だし、jQuery信者は健在だし、俺一人でどうにかなる問題でもないからな http://mevius.5ch.net/test/read.cgi/hp/1439005423/311
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 431 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.005s