【问题标题】:Cufon, cufontext breaks on jQuery clone IE7Cufon,cufonttext 在 jQuery 克隆 IE7 上中断
【发布时间】:2011-10-11 09:09:40
【问题描述】:

我在 jQuery 滑块中有 5 个元素,然后将滑块元素克隆一次,因此有足够的元素用于圆形连续幻灯片。

这是我用来克隆我的元素的代码:

$mo.prepend($mo.children().clone().removeClass('active'));

在第一个实例中,Cufon 效果很好,但在克隆之后,它似乎破坏了它的布局,通过添加间距并将 cufontext 保留在元素后面。

这是一个更好地描述问题的图片:

我已尝试以下方法来尝试引用并恢复 cufon 文本;

    $mo.prepend($mo.children().clone().removeClass('active').show(function(){
        Cufon.refresh();
    }));

我也尝试过用Cufon.replace() 重新定义cufon 以前有人遇到过这个问题吗?如果有,你是如何解决的?

我注意到,一旦克隆完成,cufonttext 的第一个实例上的 CSS 属性会在传输过程中丢失。

请注意,这些问题仅存在于 IE7(可能更低)中

我已经复制了这个问题,在 JSBIN 中它完全符合我网站上正在发生的事情,

http://jsbin.com/awupuw/

【问题讨论】:

    标签: javascript jquery internet-explorer internet-explorer-7 cufon


    【解决方案1】:

    为了让 IE7 在移动元素时正常工作,我不得不交换事物的顺序并使用 prependTo 而不是 prepend。也许值得在这里一试。

    【讨论】:

    • $mo.children().clone().prependTo( $mo ).show(function(){ Cufon.refresh(); }); 没用,感谢 Graham 的建议
    【解决方案2】:

    所以我想出了如何做到这一点,我意识到 jQuery 也在从 HTML 中复制 cufon 元素,所以当我恢复 cufon.register 或刷新时,它会尝试将其应用到 cufon 元素已经注册了。

    为了解决这个问题,我只是在调用 .clone() 之前清理了对象。

    您可能会清除与我不同的对象,但是它可以工作,所以这是我使用的代码。

    $('#clone').click(function(){
      var _object = $('h1:eq(0)').clone();
      var _text = _object.text();
      _object.find('cufon').remove();
      _object.text(_text);
    
      $('body').append(_object).show(function(){
        Cufon.refresh();
      });
    
    });
    

    http://jsbin.com/awupuw/9 -> 工作示例

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-07
      • 2013-09-22
      • 1970-01-01
      • 2012-10-09
      相关资源
      最近更新 更多