問題タブ [ready]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jquery-load - jquery .load( ) and trigger function AFTER new content loads? just like JavaScript onload event
Using jquery, I am swapping some content in a web page by use of jquery's .load() function. I want to trigger an event immediately once the content has actually been loaded, but not before and not after. I'm up for any graceful solution! Why? In this instance, I'm doing the old "fade out, swap content, fade in" approach. My problem? I want to fade back in AS SOON AS the new content is loaded.
Caveats:
- Using a callback function as in
$('#object').load(url, callback)triggers as soon as.load()function successfully executes (before the content is actually loaded). Useless here. - Using a timed delay for fading back in is not a graceful solution. Very "clunky", especially for those with faster Internet connectivity.
- JavaScript's
onloadevent trigger does not work, as the element that.load()is altering has already loaded into the HTML DOM. - jquery's
.ready()function also does not work, as the actual element is already loaded. - I do not want to create an
onloador.ready()sub-container element, because that's a workaround for what I'm actually trying, though it might be as graceful or more.
How can I fire a function when (and only when) the new .load() content is finally loaded, just like JavaScript's onload event does? Thanks much.
EDIT As it turns out, the jquery .load() function is working flawlessly, and I'm approaching this wrong.
- Once the
.load()function completes successfully, it calls any "callback" function included by the programmer, just like any other jquery function that accepts a callback as one of its "arguments". - The
.load()function is complete once it either errors or successfully begins the HTML replacement and loading of new content, but that is IT! The content will then take however long it takes to load, but your.loadcall is already complete before that. Therefore, expecting the callback to run after the.loadcontent has loaded will only disappoint you. ;)
I hope others can learn from this just as I did, including those who thought what I thought was the case. Proof: as stated in the jquery ajax .load page, the callback is executed when the request completes, not when the load completes. Eureka. Whoops. /EDIT
jquery - Jquery:トポロジーは同じだが動作が異なる子
$(window).loadでjqueryを使用して、次のコードでボタンの行を初期化しています。
次に、クリックを処理するためにこれがあります。
そして、スクリプトブロックの終了後:
したがって、トポロジ的には、2つのテストボタンと初期化した22個のボタンの1つは同じである必要があります。しかし、それは2つのテストボタンのクリックを認識するだけです。私は何が間違っているのですか?
jquery - iframe内でajax ready関数を使用する
iframe に Web ページを読み込んでいます。そのページは、ページが「準備完了」になると、jquery .ready 関数を使用してコンテンツをロードします。.ready 関数の起動が早すぎるようです。
検索時に見つけたすべてのソリューションには、(iframe ページではなく) メイン ページで発生したイベントが含まれます。.ready 関数を後で起動するために iframe 内にロードするページのソースでできることはありますか、それとも動作する他の関数またはイベントがありますか? 不要な遅延につながる可能性があるか、状況によっては十分な待ち時間が得られない可能性があるため、任意のタイムアウト関数を使用しないことをお勧めします。
編集: iframe に読み込んでいるページは、ブラウザに直接読み込まれると問題なく動作します。
jquery - jQueryプラグインテンプレートの連鎖性と準備完了
jQueryプラグインを作成していますが、クリックやその他のイベントが発生することなく、プラグインが存在する場合にのみ、選択した要素にそのプラグインをアタッチしたいと考えています。
このプラグインには他の連鎖関数があり、このプラグインがその要素にアタッチされているときにこの関数を呼び出したいと思います。
そして、その要素をオブジェクトとして連鎖関数に渡したいと思います。
しかし、このエラーメッセージが表示され、プラグインはもちろん機能しません。eachプラグインを使用してもready、プラグインでも同じエラーが発生します
TypeError:$this.function_1は関数ではありません
どうすれば正しくできますか?
jquery、
html、
android - Android-外部ストレージの準備が整うのを待つ
私は現在、外部ストレージから読み取るライブ壁紙を開発しています。デバイスが起動しているとき、ストレージの準備が整う前にライブ壁紙が起動される可能性があると思います。特に定期的なエラーチェックを行う場合。他の人が問題を報告していて、これが理由だと思います。外部ストレージがデバイスに即座にマウントされているようで、エラーチェックを強制する方法がわからないため、これをテストできないようです。だから私の最初の質問は、ライブ壁紙を起動する前に、システムが実際にBOOT_COMPLETEDインテントを実行するかどうかです。
そうでない場合、外部ストレージの準備が整うのを待つ適切な方法は何ですか。アプリの冒頭でこんな感じで呼ぼうと思っています
起動時にMEDIA_REMOVED->MEDIA_UNMOUNTED->MEDIA_CHECKING(オプション)-> MEDIA_READYになる場合に備えて、他のケースをチェックする必要がありますか?
jquery-plugins - クリックと ajaxForm 呼び出しを使用した Jquery 対応関数
私は本当に JQuery を使ったばかりで、コードにエラーがあります。次のコードは、ユーザーが「ボタン」をクリックしたときに完璧に機能し、コンテンツ div にファイルをロードしました。
しかし、今私はJQueryフォームプラグインを使用しようとしています(この例ではhttp://www.malsup.com/jquery/form/ )そしてそれは機能しません(ajaxForm呼び出し)、次のコードを私の元のコード。2ready関数を作るなどいろいろやってみますがダメで、
元の準備完了関数の次のコードをどこに配置する必要がありますか? どうすれば両方をメガーできますか?
javascript - dom 操作後のドキュメント準備完了
私はアプリケーションをPhonegap使用しており、自作のスライド遷移を使用してページを変更しています。それはこのように動作します:
すべてのページはdiv高さと幅が 100% であるため、ページを変更する場合はdiv、現在アクティブなページの次の右側を設定し、両方を左側にスライドします。
問題: スライドは正常に動作しますが、右側のコンテンツdivが完全に読み込まれる前に実行されます。したがって、右のdivスライドは空になり、数百ミリ秒後にのみコンテンツが表示されます。
で試してみdocument.readyましたが、私が読んだように、このイベントは が初めてDOMロードされたときにのみ実行されます。
withDOMを操作した後、 が再び完全にレンダリングされるのを待つ方法を知っている人はいますか?DOMJavascript
javascript - 同じスクリプトで $(document).read() を複数回使用する必要がある
次の構造のスクリプトがあります。
関数呼び出しのいずれかを削除すると$(document).ready(..)、別の名前空間から定数にアクセスしようとすると、未定義になります。両方ともうまく機能します。
ご覧のとおり、2 つのinit()関数を使用しています。1 つは、関数を追加のオブジェクト内にラップしているため、init の呼び出しを整理するためだけのものです。
CONSTANTS、VARIABLES などと同じレベルにある関数を削除し、init()Test.FUNCTIONS 内で呼び出そうとしても、まだ機能しません。
編集:
私console.log(all_constants)が完全なオブジェクトを(.chunk_of_markupで)取得した場合、しかし私console.log(tester)が getの場合undefined. テスターをラップすると、[]
また、別の名前空間が別のファイルからマークアップを取得することにも注意してください。
理由はありますか?
jquery - ネストされた画像が読み込まれた後に要素の高さを見つける一貫した方法
私はいくつかの要素div.bodyの中に含まれているを持っています。img
div.bodyロード後の高さを取得する必要がありimgます。
私は現在、以下を測定に使用しています。
これにより、90%の確率で正しい高さが返されますが、画像の高さを含まない高さが返される場合があります。
たとえば、他の要素のdiv.body合計が50px、で、画像の高さが、の150px場合、を取得する必要がありますが200px、これがちょうどを返す場合があり50pxます。
どうしてこれなの?.ready()画像が読み込まれた後にのみ関数を呼び出すべきではありませんか?
別の方法を使用する必要がありますか?
イメージが利用可能になった後、このコードを実行する100%一貫した方法は何ですか?
javascript - Javascript document.open 非同期?
したがって、私のサイトには、XMLHttpRequest を介してサーバーから新しいサイトをロードする Javascript 関数があります。その後、現在のページを新しいページに置き換えます。
do.close() の後、ドキュメントが変更され、準備ができていると想定する人もいます。しかし、そうではありません。たとえば、大量/ビッグデータ/responseText をロードすると、関数 goOn() は空の結果のみをログに記録します。その場合、明らかに goOn() は、DOM を読み取る準備ができる前に呼び出されます。残念ながら、write() が終了した後に発生する「準備完了」イベントはありません..終了したことを確認するにはどうすればよいですか?
/編集: goOn() はこれを Chrome コンソールに記録します:
しかし、その直後に手動でコンソールに $('img:visible') と入力すると、すべての画像が表示されます....