在Ajax加载后重新加载Cufon,请协助

时间:2011-01-03 14:24:16

标签: ajax jquery cufon

我一直在尝试cufon.replace - Cufon.refresh和Cufon.reload的所有可能组合,但我似乎无法让这个工作。当原始页面加载cufon完成其工作,但当Ajax加载新内容时,cufon丢失。这是我的java希望这对任何人都有意义,Cufon首先开火,然后是Ajax,

    jQuery.noConflict();

/*
  * TYPOGRAPHY
*/

Cufon.set('fontFamily', 'ColaborateLight');
Cufon.replace('h2, #main h3, h4, h5, h6, #slogan, .label', {
    hover: true
});

Cufon.set('fontFamily', 'Colaborate-Medium');
Cufon.replace('#main_home h3', {
    hover: true
});

jQuery(document).ready(function() {

    var hash = window.location.hash.substr(1);
    var href = jQuery('#nav2 li a').each(function(){
        var href = jQuery(this).attr('href');
        if(hash==href.substr(0,href.length-5)){
            var toLoad = hash+'.html #content';
            jQuery('#content').load(toLoad)
        }                                           
    });

    jQuery('#nav2 li a').click(function(){
    jQuery("#nav2 li a").addClass("current").not(this).removeClass("current");

        var toLoad = jQuery(this).attr('href')+' #content';
        jQuery('#content').hide('fast',loadContent);
        jQuery('#load').remove();
        jQuery('#wrapper').append('<span id="load">LOADING...</span>');
        jQuery('#load').fadeIn('normal');
        window.location.hash = jQuery(this).attr('href').substr(0,jQuery(this).attr('href').length-5);
        function loadContent() {
            jQuery('#content').load(toLoad,'',showNewContent())
        }
        function showNewContent() {
            jQuery('#content').show('normal',hideLoader());
        }
        function hideLoader() {
            jQuery('#load').fadeOut('normal');
        }
        return false;

    });

});

这是我遇到问题的网页。 Climate Page 您将在页面底部看到带有辅助菜单列表的Ajax加载程序。 我是绝望的伙伴,请帮忙......

7 个答案:

答案 0 :(得分:9)

我有同样的问题,无法让这个工作:

$("#my_div").load('some-ajax-file.php', Cufon.refresh);

但是,将Cufon.refresh包装在函数中可以解决问题:

$("#my_div").load('some-ajax-file.php', function() { Cufon.refresh(); });

答案 1 :(得分:5)

这对我有用......

$(document).ajaxSuccess(function() {  
    Cufon.refresh();
});

答案 2 :(得分:2)

你可以试试这个:

function showNewContent() {
    Cufon.refresh();
    jQuery('#content').show('normal',hideLoader());
}

这也在cufon api docs中进行了讨论 - https://github.com/sorccu/cufon/wiki/API

答案 3 :(得分:1)

在ajax响应后,您只需使用

即可
Cufon.refresh();

那将重新加载cufon字体样式

答案 4 :(得分:0)

尝试添加此内容:

$(document).ajaxSuccess(function() {  
Cufon('h2'); // or whatever other cufon calls, really...
});

答案 5 :(得分:0)

我遇到了同样的问题,并且使得更快的分辨率成为了一个内联CSS

 <h5 style="font-family:xxx, Helvetica, sans-serif"></h5>

<style type="text/css">
  @font-face { 
    font-family: SWZ721C; 
    src: url('../../includedfiles/xxx.TTF');
  }

  @font-face {
    font-family: MyCustomFont;
    src: url("../../includedfiles/xxx.eot") /* EOT file for IE */
  }
</style>

答案 6 :(得分:0)

$(document).ajaxSuccess(function() { Cufon.refresh(); });

希望有所帮助:)