javascript - js で false を返しても下向きの実行を防ぐことができないのはなぜですか
欧阳克
欧阳克 2017-06-12 09:21:55
0
5
3907
リーリー

//最初の return false は有効です
//2 番目の return false は無効です
理由は何ですか

欧阳克
欧阳克

温故而知新,可以为师矣。 博客:www.ouyangke.com

全員に返信(5)
世界只因有你

質問の最初のreturn falseは同期的に呼び出されるため、効果が確認できます;

$.post メソッドは非同期で実行されるため、$.post方法是异步执行的,因此在$.post方法的回调函数里面return false的时候,其实是生效了的,但是在执行这句代码的时候,$.post外面的代码早就执行完成了,所以看不到效果而已。另外,在回调函数里面加这句代码并没有什么意义,因为即使是return,也是退出当前执行的函数,即$.post的回调函数,并不能阻止$.post$.post メソッドのコールバック関数内にある場合に実際に有効になりますが、このコードを実行するとの場合、$.post の外側のコードはすでに実行されているため、効果は表示されません。さらに、このコードをコールバック関数に追加することは意味がありません。return ですら、現在実行中の関数、つまり $.post のコールバック関数を終了するからです。 $.post の外でのコードの実行を防ぐことはできません。

$.post メソッドのコールバック関数に$.post请求成功之后执行的,那就把代码放到$.post方法的回调函数里面去吧。例如题主如果本意想让alert('1111')在请求成功后通过条件判断执行,那可以alert('11111')配置する必要があるコードがある場合;

ここで被験者に対する同期と非同期について説明します。たとえば、被験者はコードを書いていて喉が渇いたので、水を沸騰させて飲みに行きます。このプロセスでは、サブジェクトはスレッドに相当します。サブジェクトが現在実行している内容は、喉が渇いたときに水を入れて沸騰させることです。心配する必要はありません。コードを書くには、水が調理されるまで待つだけで済みます。調理したら、取り出して自分で飲むだけです。対象のコードは上から順に実行され、$.post就发送一个请求,请求的过程中外部的js还是继续执行(并没有等待$.post请求返回结果),等到ajax请求返回了,再回调之前定义的回调函数。这里除了$.postまで実行されると非同期で実行され、残りのコードが同期的に実行されます。

さらに、質問の正規表現は/^1[34578]d{9}$/g

のように記述できると個人的には最適化できることがわかりました。
いいねを押す +0
漂亮男人

Return は現在の関数を返します。最初の戻りはクリック イベントのコールバック関数であり、2 番目の戻りは Ajax リクエストのコールバック関数です。当然、外部関数のコールバックは妨げられません。

いいねを押す +0
学习ing

post の関数は非同期関数であり、リクエストが成功した後にのみ呼び出され、リクエストが正常に返されるまで、コードは実行され続けます。したがって、return false ステートメントは無効です。解決策は、$.post() の非同期関数内ではなく、非同期関数の外側に return false を置くことです。

いいねを押す +0
某草草

$.post 是异步执行的,需要使用 $.ajax 并设置 async: false

いいねを押す +0
巴扎黑

alert(1111)と同じレベルに配置します

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!