2012-06-14 5 views
3

내 탭 콘텐츠가 화면에 표시되기 전에 로딩 이미지를 표시하는 방법 ??? Visualforce 페이지에 4 탭을 넣었습니다. 이제 문제는 탭을 클릭하면 탭 콘텐츠가 화면에 표시되기 전에 로딩 이미지를 표시하기 위해 많은 시간이 소요된다는 것입니다. jquery를 사용하여 내 탭을 만들었습니다. 여기에 내 코드를 제공하고 있습니다. 제발이 문제를 도와주세요. 감사합니다.탭 내용을로드하는 동안 이미지로드하는 방법?

<apex:page standardController="Account" extensions="TempExt" id="pg"> 

    <link rel="stylesheet" href="http://jqueryui.com/themes/cupertino/jquery.ui.all.css"/> 
    <script src="http://jqueryui.com/jquery-1.7.2.js"></script> 
    <script src="http://jqueryui.com/ui/jquery.ui.core.js"></script> 
    <script src="http://jqueryui.com/ui/jquery.ui.widget.js"></script> 
    <script src="http://jqueryui.com/ui/jquery.ui.tabs.js"></script> 
    <link rel="stylesheet" href="http://jqueryui.com/demos/demos.css"/> 

    <script src="/soap/ajax/10.0/connection.js" type="text/javascript"></script> 
    <script src="/soap/ajax/10.0/apex.js" type="text/javascript"></script> 
    <link rel="stylesheet" type="text/css" href="{!URLFOR($Resource.YU,'YU/build/container/assets/container.css')}"></link> 
    <script type="text/javascript" src="{!URLFOR($Resource.jquery,'Jquery.js')}"></script> 

     <script type="text/javascript" src="{!URLFOR($Resource.Jeditable,'jeditable.js')}"></script> 

    <style> 
    .rich-tabpanel-content{background:none;} 
    </style> 

    <script language="javascript" > 
    $(function() { 
     $("#tabs").tabs({ 
     ajaxOptions : { 
      error : function (xhr, status, index, anchor) 
      { 
      $(anchor.hash).html(); 
      } 
     } 
     }); 
    }); 
    </script> 

    <div class="demo"> 

    <div id="tabs"> 
     <ul> 
     <li><a href="/apex/page1?id={!record.Id}">tab1</a></li> 
     <li><a href="/apex/page2?id={!record.Id}">tab2</a></li> 
     <li><a href="/apex/page3?id={!record.Id}" >tab3</a></li> 
     <li><a href="/apex/page4?id={!record.Id}" >tab4</a></li> 
     </ul> 
    </div> 

    </div><!-- End demo --> 

</apex:page> 

답변

3

ajaxOptions에 더 많은 옵션을 추가하면 AJAX 호출 경로에 따라 로더를 숨기거나 표시 할 수 있습니다.

$(function() { 
    $("#tabs").tabs({ 
     ajaxOptions: { 
      error: function(xhr, status, index, anchor) { 
       $(anchor.hash).html(); 
      }, 
      beforeSend: function() { 
       $('#loader').show(); 
      }, 
      complete: function() { 
       $("#loader").hide(); 
      } 
     } 
    }); 
});​ 

그리고 당신은/스타일을 페이지의 로더 만들 수 있습니다

<div id="loader" style="display:none">Loading...</div> 

+0

가 답장을 보내 주셔서 감사합니다 더 많은 옵션에 대한 http://api.jquery.com/jQuery.ajax/#jQuery-ajax-settings를 참조하십시오. 나는 그것을 사용했습니다 ...하지만 제대로 작동하지 않습니다 ..... 어떤 "로드 ...."페이지에서 볼 수 없습니다. 그래서 당신은 그것을 수정할 수 있습니다. 부디. – ashish

+0

다음은 작동 예제입니다. http://jsfiddle.net/CQYSa/ – r0m4n

+0

감사합니다. 내 문제가 해결되었습니다. 이제 그 탭의 색상을 하늘색으로 변경하고 싶습니다. 그래서 그 대답을 찾을 수있게 도와 줄 수 있니? 부디. – ashish

관련 문제