2009-09-08 21 views
6

ajax呼び出し中にモーダルロードダイアログをポップアップ表示しようとしていますが、onClick関数に表示されません。私が火薬瓶でそれを減速させ、ステップを進めるとパネルが現れます。これはジャバスクリプト自体が先に実行されていますか?これを行うより良い方法はありますか?呼び出されたときにjQueryダイアログが表示されない

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

    $("a.view-in-frame").click(function(){ 
         $("#loading_panel").dialog('open'); 
         $("#tabs").hide(); 
         var blog = $(document.createElement('div')).attr('id', 'blog').load(('blog_reader.php?blog='+this.href)), $("#loading_panel").dialog('close')); 
         $("#content_wrap").append(blog); 
         return false; 
       }); 
}) 
+0

これを解決しましたか?私は同じ問題を抱えています。 – xenon

+3

いいえプロジェクトを終了しました – ErsatzRyan

+0

ありがとう、ありがとうございます。私は今どのように問題を回避したのか覚えていない:P – xenon

答えて

1

ジャストアイデア、ダイアログを作成するときにfalseに「AutoOpenプロパティ」を設定してみてください:

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

あなたはそれが作成されたときに開くようにダイアログを言っている現時点では。これにより、その動作を防止する必要があります。

+0

それはそれを修正していないいいえ – ErsatzRyan

+0

どちらにしても、それはそこにあるはずです。 :) – Ryall

1

@ErsatzRyan

は、あなたの文書の準備ができた後にロードするためにあなたのjavascript機能を設定しようとしたことがありますか?このよう

$(document).ready(function(){ 

//Your functions 

}); 

そして@Nat Ryallは、あなたが、falseにごAutoOpenプロパティを設定する必要があります言ったようにそれ以外の場合は、あなたのダイアログが二回開きません

さらに、すべてを済ませたら$(".selector").dialog("open")に電話してみてください。ダイアログの内容をロードする前にダイアログを呼び出すように関数に指示しています。

+0

$(function(){});彼が使用している構文は同等です。 [spec for ready](http://api.jquery.com/ready/)を参照してください。 –

+0

これは私のためにそれを修正したものです。たとえエラーがスローされず、表示しようとしなくても、ドキュメントが明らかに準備が整う前にダイアログを作成することはできません。 –

関連する問題