2010-03-17 4 views
0

J'ai obtenu des éléments dont le style est modifié dynamiquement par un JS. Cependant, j'espère que l'un d'entre eux ne serait pas modifié.Comment spécifier un style à ne pas modifier par les styles spécifiés dans JS

Comment pourrais-je spécifier son style, qui est statique, de ne pas être surchargé de toute façon. Merci.

+0

Vous voulez dire attribut de style ou des règles de style dans un CSS externe? Ou les deux? –

+0

@Richard: les deux cas – Ricky

Répondre

2

Comme vous l'avez vu, vous ne pouvez pas le faire en CSS; Cependant, vous pouvez demander à JavaScript de ne pas mettre à jour le style d'un élément, mais cela nécessite une attention manuelle. Considérez ce qui suit:

HTML

<ul id="some-list"> 
    <li>A</li> 
    <li>B</li> 
    <li class="no-style-update">C</li> 
    <li>D</li> 
</ul> 

JavaScript (vanille)

var nodes = document.getElementById("some-list").getElementsByTagName("LI"); 

for (var i=0, l=nodes.length; i<l; ++i) { 
    // If style updates are allowed 
    if (!nodes[i].className.match(/\bno-style-update\b/i)) { 
     // Update the element's style 
    } 
} 
2

Vous ne pouvez pas.

Le mieux que vous puissiez faire serait de remplacer les méthodes javascript qui font la modification.

4

cela ne peut pas être fait. JavaScript s'exécute après le chargement du fichier CSS &. vous devrez changer vos classes ID & et/ou votre code JavaScript afin qu'il ne cible pas les éléments que vous ne voulez pas changer.

2

La réponse courte est que vous ne pouvez pas. CSS est appliqué tel qu'il est rencontré par le navigateur. Puisque l'appel au JavaScript est le dernier appel qui modifie ce style particulier, il sera appliqué à l'élément.

Ce que vous pouvez faire est d'exécuter un autre JavaScript qui change le style de cet élément spécifique après le premier script. Comme il y a quelque chose d'unique dans cet élément, vous pouvez probablement vous y référer par son ID, sa classe ou son nom.

-1

Peut-être que vous pourriez mettre les éléments dans un iframe, où l'attribut src fait référence à un chemin ou un domaine différent. Le javascript dans la page du conteneur n'a pas pu modifier l'élément, en raison de la même règle d'origine qui ne permet pas la modification de données d'origines différentes.

Questions connexes