+ JavaScript の質問用スレッド vol.126 + [転載禁止]©2ch.net (742レス)
上下前次1-新
292(3): 2022/08/03(水)20:52 ID:Nj6BOTMG(8/13) AAS
ちょっと訂正。
var reset = () => {
console.log(playing_flag);
console.log("停止");
playing_flag = true;
};
↓
var reset = () => {
console.log(playing_flag);
console.log("停止");
省2
293: 2022/08/03(水)20:53 ID:??? AAS
その2回通ると思い込んでるif文はイベントハンドラでも何でもないんだからボタン押される前の1回しか通らないよ
294: 2022/08/03(水)21:00 ID:Nj6BOTMG(9/13) AAS
え。意味がよくわからない。イベントハンドラじゃないから、1回しかとおらない。。??
295: 2022/08/03(水)21:13 ID:Nj6BOTMG(10/13) AAS
ずっとコードを眺めてみたら、
>>290のコードは確におかしいことは分かってきた気がする。
296: 2022/08/03(水)21:37 ID:??? AAS
>>291,292のコードも、イベントリスナー使ってますけど。
2回クリックしてもelse文にはならず、if文を2回実行しているのでしょうか?
297(2): 2022/08/03(水)21:56 ID:Nj6BOTMG(11/13) AAS
playing_flag = false;
var run = () => {
if(playing_flag === false){
console.log(playing_flag);
console.log("再生中");
playing_flag = true;
}else{
reset();
}
};
省11
298: 2022/08/03(水)22:04 ID:??? AAS
納得いかない、ねえ?
開発者ツールでどういう順番でどの行の処理がされるか確認したらいいんじゃないかな
299: 2022/08/03(水)22:07 ID:Nj6BOTMG(12/13) AAS
あ。そうですね。アドバイスありがとうございます。
300: 2022/08/03(水)22:12 ID:??? AAS
>>297
むしろ、>>291でフラグ立ててイベントハンドラ振り分けてるのが最高に意味不明なんだが
イベント駆動について勉強してみたら?
301(2): 2022/08/03(水)22:42 ID:Nj6BOTMG(13/13) AAS
よくわかってなかったようだ。
下の認識でOKですか?雑ですが。。
「Javascriptはブラウザが開いたとき、上の行から下の行へ基本一回だけ実行する。
しかし、イベントが起きたら例外的にその箇所を実行する。」
302(1): 2022/08/04(木)02:45 ID:??? AAS
>>301
HTMLスクリプト要素のdefer属性(DOMContentLoadedからの実行)とasync属性(HTMLScriptElement#onloadからの非同期実行)
303: 2022/08/04(木)03:10 ID:jGEKnkMs(1) AAS
>>302ありがとうございます。詳しく調べてみます。
>>291,292を
開発者モードでトレースしてみたのですけど。
ボタンをクリックすると、直前の条件の評価をせずに、
いきなりrun()の中を実行はじめました。
カレントの変数を無視して、初回時の条件が適応されているようです。
多分。疑問に思う方が変なのかもしれませんが、これは慣れですかね。。
304: 2022/08/04(木)03:13 ID:??? AAS
例えば、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年レベルにするの大変だろうけど頑張ってね。
305: 2022/08/04(木)23:22 ID:??? AAS
>>297
>var playing_flag = false;
>if (playing_flag === false){ 処理 }
playing_flag が真偽値・bool 型なら、単にこう書けば?
if ( playing_flag )
基本、boolを比較してはならない。
すでに、boolになっているから
306: 2022/08/04(木)23:38 ID:??? AAS
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; }
省10
307(1): 2022/08/05(金)02:46 ID:??? AAS
もうjqueryスレと統合すべきだと思うの
両者の関連スレ合わせても勢い1すらないんだし
308: 2022/08/05(金)07:46 ID:??? AAS
jqueryを使わずにpure jsで、ていう質問も大いにありえるから
分けたほうがいいとおも
309: 2022/08/05(金)08:20 ID:??? AAS
JSスレはプログラム板のスレもあるんだよなあ
既にどちらも人がいないし、今から整理するのは無理そう
+ JavaScript の質問用スレッド vol.124 +
2chスレ:tech
310: 2022/08/05(金)08:35 ID:??? AAS
どっちでも良い。
答える方としては、素のJS で書くのは非常に面倒
jQuery は可読性が高いので、読めない香具師はいないから、
ひとまず、jQueryで書いて、
それを質問者が書き直したければ、素のJSで書き直せばよい
311: 2022/08/05(金)11:51 ID:??? AAS
jQueryスレやプログラム板でもいわれてるが、今は統合とかテンプレ修正とか、意欲ある人がいない
+ JavaScript & jQuery 質問用スレッド vol.7 + [無断転載禁止]©2ch.net
2chスレ:hp
+ JavaScript の質問用スレッド vol.124 +
2chスレ:tech
>>307も統合を示唆してるが、「やりたいなら、お前が責任持ってやれ」といわれてもやらないだろ?
昔の風潮なら俺も手を貸しただろうが、今はやる気が全く起きないわ
まともな感性で保守する人は皆無だし、jQuery信者は健在だし、俺一人でどうにかなる問題でもないからな
上下前次1-新書関写板覧索設栞歴
あと 431 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.009s