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

我找到了解决方案,而且非常简单。在我的页面的头部加载了两种 Cufon 准备的字体,用于不同的(不相交的)选择器。在关于第一个(所需)字体的行之后,Cufon.replace被调用。由于没有其他字体,Cufon 用这种字体替换所有给定的字体。但在那之后是第二种字体。

在这种情况下,Cufon.refresh()奇怪地用最后一个字体替换了它之前使用的每个选择器。发生这种情况是因为第一Cufon.replace(...)行没有指定字体。

Cufon.replace(selector, fontOptions)而不是Cufon.refresh()解决它。

于 2012-06-19T20:54:32.757 回答