6


0

私は私がAJAX呼び出しをしている間にモーダルロードダイアログがポップアップするようにしようとしていますが、それはonClick関数に表示されていません。 Firebugで速度を落としてローディングパネルをステップスルーすると表示されます。 これだけのJavaScriptが先に走っているのでしょうか。 これを行うより良い方法はありますか?

$(function(){$( "#loading_panel")。dialog({modal:true、position: 'center'、minHeight:40});

$( "a.view-in-frame")。クリック(function(){$( "#loading_panel")。ダイアログ( 'open'); $( "#tabs")。hide(); var blog = $ (document.createElement( 'div'))。attr( 'id'、 'blog')。load(( 'blog_reader.php?blog =' this.href))、$( "#loading_panel")。dialog( '閉じる')); $( "#content_wrap")。append(blog); falseを返します。 ;)); )

2 Answer


1


考えを言うと、ダイアログを作成するときに 'autoOpen’をfalseに設定してみてください。

$( "#loading_panel")。dialog({modal:true、position: 'center'、minHeight:40、autoOpen:false});

現時点では、ダイアログが作成されたときに開くように指示しています。 これはその振る舞いを防ぐはずです。


1


@ErsatzRyan

ドキュメントの準備が整った後にjavascript関数をロードするように設定しましたか?

このような:

$(document).ready(function(){

//Your functions

;));

@Nat Ryallが言ったように、あなたはあなたのautoOpenを `false`にセットしなければなりません、そうでなければあなたのダイアログは二度開かないでしょう。

そして別のこととして、すべてを終えたら、 `$("。selector ")。dialog(" open ")`を呼び出すようにしてください。 あなたはそれが内容をロードする前にあなたの関数にあなたのダイアログを呼び出すように言っています。