2011-10-17 2 views
0

내 오류 처리를 더 깨끗한 방법으로 표시하기 위해 오류 처리를 facebox와 통합하려고합니다. 문제는 jQuery.facebox를 호출 할 때 함수가 아니라는 것을 알려주고 있다는 것입니다. 하지만 내 응용 프로그램에서 링크를 통해 facebox의 rel을 사용할 수 있습니다.facebox가 asp.net masterpage의 기능이 아닙니다.

헤드 :

다음
<script language="javascript" src="http://code.jquery.com/jquery-latest.js" type="text/javascript" /> 
<script language="javascript" src="/Resources/js/jquery.min.js" type="text/javascript"></script>  
<script language="javascript" src="/Resources/js/jquery-1.2.2.pack.js" type="text/javascript"></script>   
<link href="/Resources/css/facebox.css" media="screen" rel="stylesheet" type="text/css"/>   
<script src="/Resources/js/facebox.js" type="text/javascript" /> 

이 같은 masterpage 임 호출 facebox 내 코드 숨김에서 :

<div id="error" style="display:none;"> 
    <table width="100%" cellpadding="0" cellspacing="0"> 
     <tr> 
      <td colspan="2" style="background-color:#5F92CB; color:#fff; padding:6px; font-weight:bold;" align="left">Error Occurred while processing request</td> 
     </tr> 
     <tr> 
      <td style="padding:4px;" class="boldText"><asp:Label ID="lblErrorMessage" runat="server" /></td> 
     </tr>    
    </table> 
</div> 
:

ScriptManager.RegisterStartupScript(Page, typeof(string), "ErrorMessage", "jQuery.facebox({ div: '#error' });", true); 

그리고 오류 DIV 아래 masterpage의 끝으로이다

도움이 되었다면 크게 감사하겠습니다. 덕분에

+0

을 왜 JQuery와의 여러 버전을 포함하고있다? 이것은 일을 깨뜨릴 수 있습니다. –

+0

나는 jquery에 상당히 익숙하며, 내가 찾고있는 것을 얻기 위해 여러 개의 플러그인을 사용하려고한다. 그리고 플러그인과 함께 제공되는 js 파일을 모두 사용하지 않으면 플러그인이 작동하지 않는다는 것을 알게되었습니다. 나는 마이크로 소프트 아약스 cdn을 사용해 보았지만 페이스 박스가 작동하지 않을 때. – chadn

답변

1

같은 페이지에서 여러 가지 버전의 jquery를 사용해야하는 경우 (항상 두통을 일으킬 수 있음) 항상 jQuery의 noconflict 모드를 사용해야합니다. 자세한 정보 및 구현 세부 정보는 다음 URL을 확인하십시오. link 1, link 2

어떤 플러그인이 어떤 jQuery 버전을 사용하는지 알아 두는 것이 중요합니다. 올바른 순서로로드해야하기 때문입니다. 새 jQuery 버전보다 먼저 이전 버전 플러그인을로드해야한다.

는 브라이언 말한 것처럼, 그것을 달성하기 위해 다음 코드를 사용하여 DOM이로드 될 때 스크립트를 실행할 수 BETER 말했습니다

:

$(document).ready(function() { jQuery.facebox({ div: '#error' }); }) 
1

같이 document.ready에 포장 시도해보십시오 facebox 플러그인 가능성이 가장 준비가되기 전에 실행중인 있기 때문에

ScriptManager.RegisterStartupScript(Page, typeof(string), "ErrorMessage", "$(document).ready(function() { jQuery.facebox({ div: '#error' }); });", true); 

이 실패한 것 이유입니다.

+0

나는 당신의 직감이 정확하다고 생각하지만 "$ (document) .ready (function() ...")하면 어떻게됩니까? (btw는 $ function() ...의 매우 긴 버전입니다. –

+0

플러그인은 오류를 기반으로 준비가되어 있지 않으므로 준비된 이벤트를 위해 JQuery가 완전히 준비 될 때까지 지연해야합니다. 스크립트가 정의 된 시점에 $가 초기화 되었기 때문에 상태가 잘못되었습니다. –

+0

방금 ​​시도했지만 jQuery.facebox는 함수가 아닙니다 . – chadn