2012-06-19 6 views
0

여기 내 문제가 있습니다. 나는 다음과 같은 코드 (I 멀리 관련이없는 부분을했다)가 : 예상 (팝업이 포함 j.message가 표시)로 내가 Cufon.refresh 콜백을 제거하면Cufon.refresh 예기치 않은 동작

$('.poll').click(function (e) { 
     $.post('/my/ajax/script', {}, function(d) { 
      j = $.parseJSON(d); 
      var el = $('#my_msg').find('.message-text').find('p'); 
      // That p has class which was consumed by Cufon at document ready 
      el.html(j.message); 
      $('#my_div').fadeIn(fadeTime, function() { Cufon.refresh(); });      
     }); 
    } 
    e.preventDefault(); 
}); 

를, 모든 작동합니다. 그러나 나가면 텍스트는 부분적으로 만 렌더링됩니다 (마지막 단어가 누락되어 전체 텍스트가 보이지 않습니다).

이러한 동작이 발생할 수있는 이유는 무엇입니까?

+0

[피들] (http://jsfiddle.net/)을 보여줄 수 있습니까? –

답변

0

나는 솔루션을 발견했으며 매우 간단했습니다. 내 페이지의 머리 부분에 두 개의 Cufon 준비 글꼴이로드되어 있으며 서로 교차하지 않는 셀렉터에 사용됩니다. 첫 번째 (원하는) 글꼴에 대한 줄 다음에 Cufon.replace이 호출됩니다. 다른 폰트가 없기 때문에, Cufon은이 글꼴로 주어진 모든 것을 바꿉니다. 하지만 그 다음에 두 번째 글꼴이옵니다.

그런 경우 Cufon.refresh()은 이전에 소비 한 모든 선택기를 이상한 글꼴로 바꿉니다. 첫 번째 Cufon.replace(...) 줄이 글꼴을 지정하지 않았기 때문에 이런 일이 발생합니다.

Cufon.replace(selector, fontOptions) 대신 Cufon.refresh()이 해결되었습니다.