Ich versuche, eine Talkbubble formatieren div-Box Farben beim Anklicken vollständig zu ändern.Pseudo-Element-Steuerelement mit Javascript
Ich lief in ein Problem des Erhaltens das :before
Pseudo-Elements, das ich verwende (den Pfeil für die talkbubble zu formen), um tatsächlich Farben mit dem Rest des Elements zu ändern, wie hier zu sehen:
HTML
<div class="clickables">
<div class="talkbubble">
<input type="hidden" class="tbselector" value="sbselection_1">
<div class="thumbnail">
<img src="images/thumbnail1.png" height="33" width="30" />
</div>
<div class="words">Commons</div>
</div>
<div class="talkbubble">
<input type="hidden" class="tbselector" value="sbselection_2">
<div class="thumbnail">
<img src="images/thumbnail1.png" height="33" width="30" align="middle" />
</div>
<div class="words">crossroads</div>
</div>
.
. More and more
.
</div>
</div>
CSSNur Relevante
.talkbubble {
background: white;
color: rgb(0,0,0);
height: 40px;
margin-top: 1%;
margin-left: 48%;
margin-right: auto;
position: relative;
width: 150px;
}
.talkbubble:before {
border-top: 10px solid transparent;
border-right: 10px solid white;
border-bottom: 10px solid transparent;
content:"";
height: 0;
position: absolute;
right: 100%;
top: 10px;
width: 0;
}
.talkbubble:before.clicked {
border-right-color:#666666;
}
.talkbubble:hover{
background-color: rgb(194,194,194)!important;
color:rgb(255,255,255);
}
.talkbubble:hover:before{
border-right-color: rgb(194,194,194)!important;
}
JQUERY
$('.clickables').on('click','.talkbubble',function() {
$(this).parent().find('.talkbubble').css('background-color','#ffffff');
$(this).css('background-color', '#666666');
});
Hier ist eine Demo http://jsfiddle.net/petiteco24601/3xuuq2fx/
ich tat etwas Forschung und es scheint ein wenig unschlüssig. In den meisten Fällen, was ich gefunden habe, war im Grunde gesagt, dass es keine Möglichkeit gibt, JavaScript wirklich auf ein Pseudo-Element zu zwingen, da das Pseudo-Element NICHT WIRKLICH existiert.
Jedoch, mit mehr Forschung, fand ich Dinge wie http://css-tricks.com/pseudo-element-animationstransitions-bug-fixed-in-webkit/ und Change an HTML5 input's placeholder color with CSS, die sagen, dass diese Fehler behoben wurden und es ist mit einigen Browsern möglich, JavaScript auf Pseudo-Elemente zu verwenden. Was ist das eigentliche Geschäft? Wie weit kann eine Person Pseudoelemente kontrollieren?
fügen Sie einfach eine zusätzliche Klasse, Inline-Stil ist nicht Best Practice sowieso .. – supernova