0

所以,我有一个元素附加了一些“预先存在的”行为。所以,我发现仅仅移动它(根据一些新的要求)就可以保留现有的行为 = 好。但问题是,当我移动元素时,我需要赋予它“新样式”。

所以,如果我有这样的事情:

<div id="existingStructure">
    <div id="legacyElement"></div>
</div>

现在,这两者都有预先存在的样式。我可以重新排列这些样式等。但我不能改变它们。样式附加到“id”而不是类定义。我相信如果需要我可以改变它。

现在,当“新 div”发生某些事情时,我需要移动“legacyElement”。我只是

jQuery('#newStructure').append('#legacyElement');

<div id="newStructure">
    <div id="legacyElement"></div>
</div>

不幸的是,当我在 newStructure 上动态移动时,我在 newStructure 上的样式似乎不适用于 *legacyElement"。

我正在考虑将所有样式移动到一个类而不是关联到 id,当我移动它时......我只是 jQuery().addClass / jQuery().removeClass 等......

有没有更好/更简单更健壮的方法,我可以让legacyElement在它位于existingStructure下时松散它的样式,然后在移动到“newStructure”等时获得新的样式……反之亦然。那个元素“legacyElement”将来回ping..所以,我需要它在每个父div下都有样式。

因此,当页面上发生动作时,我将其移回:

jQuery('#existingStructure').append('#legacyElement');

如果我不够简洁,请告诉我。

EXISTING 样式在外部 CSS 文件中,就像这样..

#existingStructure {
   // bunch of css
 }

#existingStructure .item1 input[type="text"] {
   // bunch of css
}

 #legacyElement{
   // bunch of css
  }

并且新样式是相同的,除了可能会应用“其他样式”。

#newStructure {
   // bunch of css
 }

#newStructure .item1 input[type="text"] {
   // bunch of css
}
4

2 回答 2

2

您当然可以通过他们的父母来定位您的 div 样式:

#existingStructure #legacyElement {some styles}
#newStructure #legacyElement {some other styles}

为了进一步解释,这种安排应该产生更大的特异性,覆盖简单地应用于#existingStructure 或#legacyElement 的样式。我希望没有人做任何愚蠢的事情,比如在他们身上使用 !important。

于 2013-02-18T21:21:26.013 回答
1

简短的回答:应该。

这是我在 jsFiddle 中快速制作的一个示例:http: //jsfiddle.net/CCm4J/1/

那为什么不是你的呢?很可能您有嵌入的 css 规则,这些规则仅在existingStructureid/class 中适用?如果没有看到更多你的 css,我不确定我能得到多具体。我只是验证您的 css 规则是否允许在外部应用existingStructure(甚至可能对其父existingStructure级也有规则!)

于 2013-02-18T21:28:11.427 回答