2010-01-27 7 views
2

문제 : 트리거가 블록 UI가이 코드를 호출 할 때 오류가 발생한JQuery와 블록 UI 고장

(function($){ 

    function preloader() 
    { 
     $('a#preloader').click(function(e){ 
      e.preventDefault(); 
      var url = base_url + 'runtest/preloader'; 

      $('div#content').load(url, preloaderCallback); 
     }); 
    } 

    function remotePreload() 
    { 
     $('a#remotepreload').click(function(e){ 
      e.preventDefault(); 

      var object = $(this); 
      object.data('clicked', 'yes'); 

      var url = base_url + 'runtest/remote_preloader'; 

      $('div#content').load(url); 
     }); 
    } 


    /* 
    * callback functions 
    */ 

    function preloaderCallback() 
    { 
     $('div.imageholder img').hide(); 

     $('div.imageholder img').each(function(){ 
      var img = new Image(); 

      var sursa = $(this).attr('src'); 

      var parent = $(this).parent(); 

      var preloaderSource = '<img src="' + base_url + 'media/images/preloader.gif' + '" alt="loader"/>'; 

      parent.append(preloaderSource); 

      $(img).load(function(){ 
       parent.append($(this)); 
       $(this).hide().fadeIn(500); 
       $(this).siblings().remove(); 
      }).attr('src', sursa); 
     }); 
    } 

    function blocker() 
    { 
     $('#content').block(); 
    } 

    function handlePageLoad() 
    { 
     $('a#remotepreload').ajaxStart(function(e){ 
      var elem = $(e.target); 
      if (elem.data('clicked') == 'yes') 
      { 
       // error when blocker() function is called here 
       alert('Started'); 
      } 
     }); 
     $('a#remotepreload').ajaxComplete(function(e){ 
      var elem = $(e.target); 
      if (elem.data('clicked') == 'yes') 
      { 

       elem.removeData('clicked'); 
       alert('Ended'); 
      } 
     }); 
    } 

    // call onready functions 
    $(function(){ 
     preloader(); remotePreload();handlePageLoad(); 
    }); 
})(jQuery); 

// 여기에 파이어 폭스의 디버거 캐치되지 않는 예외에서 오류 발생 : [예외 ... "할 수 없습니다 0, 인수 자바 스크립트 인수를 변환 "nsresult :"0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS) "위치 :"JS 프레임 :: http://localhost/testsuite/media/js/jquery.min.js :: 익명 :: 115 "데이터 : NO]

여기에 HTML 태그

<div id="wrap"> 
      <div id="header"> 
       <?= $header ?> 
      </div> 

      <div id="content"> 
       <?= $content ?> 
      </div> 

      <div id="sidebar"> 
       <?= $sidebar ?> 
      </div> 

      <div id="footer"> 
       <?= $footer ?> 
      </div> 
     </div> 
,536 없습니다

EDIT 이 경우 Jquery 1.4.1을 사용하고있었습니다. 다시 1.3으로 전환하면 모든 것이 정상으로 돌아갔습니다.

+0

"object"의 변수 이름을 obj (객체가 예약 된 작업 일 수 있음)로 변경해보십시오. –

+0

blockUI 플러그인이 1.4.1의 변경 사항과 충돌하는 편집, 버전 문제 일 가능성이 높습니다. – yretuta

답변

3

blockUI가 January 6th 2010에 업데이트되었습니다. 불행히도, 작성자는 홈 페이지 어디에서든 사실을 발표하지 않았습니다. jQuery 1.4와 완벽하게 작동하는지 확인할 수 있습니다.

+0

이 답변은 실제로 질문에 연결되지는 않지만 문제를 해결합니다. 감사! – yretuta