Cufon在悬停时刷新延迟

时间:2011-12-06 10:33:54

标签: jquery cycle cufon

我正在使用Cufon和jCycle来创建一个旋转木马。我想在悬停事件中更改链接的颜色。这样可以正常工作,但它有一点烦人的延迟,如0.5秒。

我已经在使用cufon.refresh(),但它不能正常工作。

我正在使用的代码:

(function($) {

    $(document).ready(function() {

        $('#homepage_slideshow').before('<div id="nav">').cycle({ 
            fx                  : 'fade', 
            pause               : 1,
            speed               : 'fast', 
            timeout             : 5000, 
            pager               : '#nav',
            slideResize         : false,
            containerResize     : false,
            pagerEvent          : 'mouseover', 
            fastOnEvent         : true,
            pause: 1,
            pagerAnchorBuilder: function(index, element) {
                  var title      = $('.slide_title a', element).remove().text();
                  var undertitle = $('.slide_title .undertitle', element).remove().text();

                  var atitle  = $('<a />').attr('href', '#').text(title);
                  var sutitle = $('<div class="undertitle" />').text(undertitle);
                  var div     = $('<div />').addClass('slideshow_tab');
                  var lnk     = $('.slide_img a', element);

                  div.append(atitle);
                  div.append(sutitle);

                  if (lnk.length) div.click(function(e) {
                      e && e.preventDefault();
                      window.location.href = $(lnk[ lnk.length - 1]).attr('href');
                  })
                  else {
                      div.css('cursor','default');
                      div.find('a').css('cursor','default');
                  };    

                  return div; 

            },

            after: function(){ Cufon.refresh('.slideshow_tab a'); }
        });

            Cufon.replace('.slideshow_tab a');

            Cufon.now(); 

    });

})(jQuery);

如果有人能帮助我 - 我会非常感激。

1 个答案:

答案 0 :(得分:2)

可能是你的嵌套pageranchorbuilder函数/代码在循环之前运行&#34;在&#34;之后函数被调用。尝试更直接地实施悬停功能以获得更直接的操作。

我遇到了相同的性能问题,当我在jquery .hover和回调函数中实现.refresh时,实际上得到了相当快的结果。

$(".slidehow_tab a").hover(
    function () {
        $(this).addClass("hover");
        Cufon.refresh();
    },
    function () {
        $(this).removeClass("hover");
        Cufon.refresh();
    }
);