繁体   English   中英

jQuery将新创建的元素设置为动态元素的当前样式

[英]jQuery set newly created element to a dynamic elements current style

我有一个元素,出于通信目的,我们将其称为$elA ,它在运行时通过.animate()更改了一些CSS属性。

例如:

$elA.stop().animate({
    top: `${Math.floor(Math.random()*99)}%`,
    left: `${Math.floor(Math.random()*99)}%`,
    width: '15px',
    height: '15px',
    opacity: '1.0'
    //etc etc etc
});

当某个事件稍后在代码中触发时,我需要创建$elA的克隆。 出于通信目的,我们将此称为$elB

在此事件中我该如何做类似于$elB.css = $elA.css事情? 它不必是jQuery方法,也可以是没有问题,我只是不确定是否存在一种优雅的方式来处理这种情况,即没有与之关联的当前类,因为DOM的属性我希望克隆的元素在工作表的任何地方都不存在。

谢谢。

使用jQuery的.clone()方法。 它执行匹配元素集的深层复制,这意味着它将复制匹配元素及其所有后代元素和文本节点。

如果使用JavaScript,则以下内容将有助于将样式仅复制到另一个元素。

 document.getElementById("copy2").style.cssText= document.getElementById("copy1").style.cssText; 
 <div id="copy1" class ="copycss" style="width: 100px; background-color: blue; color: red; font-size: 15;"> 10 </div> <div id="copy2" class ="copycss"> 10 </div> 

如果您只需要克隆样式,则可以使用如下函数:(Fiddle hier: https : //jsfiddle.net/taxostd0/2/

function copyStyles(from, to) {
    var fromStyles = getComputedStyle(from);
    for(prop in fromStyles) {
    to.style[prop] = fromStyles[prop];
  }
}

然后这样称呼它:

copyStyles($elA[0], $elB[0]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM