0

これが私の問題です。私は次のコードを持っています(私は無関係な部分を取り除きました):

    $('.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();
 });

コールバックを削除するCufon.refreshと、すべてが期待どおりに機能します(ポップアップを含むがj.message表示されます)。しかし、そのままにしておくと、テキストは部分的にしかレンダリングされません(最後の単語が欠落しているため、テキスト全体が表示されません)。

そのような行動の理由は何でしょうか?

4

1 に答える 1

0

私は解決策を見つけました、そしてそれは非常に簡単でした。私のページのヘッドセクションにロードされた2つのCufonで準備されたフォントがあり、異なる(交差していない)セレクターに使用されます。最初の(目的の)フォントに関する行の後に、Cufon.replaceが呼び出されます。他のフォントがないため、Cufonは指定されたすべてのものをこのフォントに置き換えます。しかしその後、2番目のフォントが登場します。

その場合、Cufon.refresh()奇妙なことに、以前に消費したすべてのセレクターが最後のフォントに置き換えられます。これは、最初のCufon.replace(...)行でフォントが指定されていないために発生します。

Cufon.replace(selector, fontOptions)Cufon.refresh()それを解決する代わりに。

于 2012-06-19T20:54:32.757 に答える