2013-01-10 38 views
0

我想在用戶點擊我應用程序中的相應按鈕時啓動一些彈出窗口。我用從mysql啓動模式窗口+ ajax

$('#modal').on('show', function() { 
    $.ajax({ ... }); 
}); 

,並與阿賈克斯我要求從MySQL一些JSON的內容,我想注入模頭,模體和模態英尺。這是我一般用於我的網頁的HTML,我想要刷新並顯示按鈕選擇的時間。

 <div class="modal hide fade" id="modal"> 
      <div class="modal-header"></div> 
      <div class="modal-body"></div> 
      <div class="modal-footer"></div> 
     </div> 

問題是,模態顯示爲空或顯示先前遞送的內容和1秒後左右AJAX帶來了其更新糖果等。所以內容的更新可悲地在用戶眼前展開。 Modal api沒有提供比'show'更好的選項,因此只有在整個內容由ajax提供並準備好交付給最終用戶的屏幕時才能顯示模式。

回答

1

好吧,我試過不同的東西。我點擊一個按鈕,並在成功選項的第一個內容被舉行時,我運行ajax調用,然後我手動調用模態窗口顯示其更新的好東西。

$('a[href=#viewProperty]').click(function(e) { 

    var dataString = "action=viewProperty&propertyId=" + $.cookie('propertyId'); 

    $.ajax({ 
     type  : "GET", 
     dataType : "json", 
     url  : "ajax/property.php", 
     data  : dataString, 
     success : function(data){ 
      console.log("ajax works"); 
      //$.removeCookie('propertyId'); 
      console.log(data.house_type); 
      $('#viewProperty h3').empty().html('View Property: ' + data.house_type); 

      $('#viewProperty').modal('show');    
     }, 
     error : function(){ 
      console.log("ajax failed"); 
     } 
    }); 

    return false; 
}); 

並且正常工作。剩下的只是在ajax調用完成之前添加一個加載器。