Ich versuche, mehr Logik zu my code hinzuzufügen, aber es funktioniert nicht. Ich muss mein Symbol um ein span
Tag wickeln, damit ich die Zeilenhöhe richtig bekomme. Ich verwende Google Schrift:So wenden Sie Stil auf das richtige Tag mit JQuery
html.erb
<!-- inside a loop -->
<span class="wish-flex cursor" data-id="wish">
<i class="material-icons cursor">favorite_border</i> Add Wishlist
</span>
<input type="hidden" class="wish-cls" value="<%= product.id %>" />
SCSS
...
span.wish-flex{
display: inline-flex;
vertical-align: middle;
padding-top: 10px
}
.material-icons.red { color: $hotRed; }
span .material-icons{
margin-top: -2px
}
JavaScript
$("[data-id=wish]").click(function(e){
e.preventDefault();
var value = $(this).next(".wish-cls").val();
console.log("Clicked: " + value);
/* Applying the css when clicked
*
* We use toggleClass instead of addClass
* TODO: Ajax
*/
$(this).toggleClass("red");
});
Der Code wird Anwendung der Klasse red
auf die Spannweite. Korrekt aber, wie man es erhält, das class
auf das i
Tag anzuwenden? Wenn der Benutzer auf das Herz oder das Wort klickt (Wunschliste hinzufügen), wird das Skript ausgeführt.
Vielleicht könnte ich die css
ändern, um den Inline-Stil mit dem Symbol und dem Text zu erhalten und entfernen Sie die span
?
'$ (" i ", das) .toggleClass (" rot ");' –
@RajaprabhuAravindasamy Danke! Das funktioniert großartig. Können Sie auf einen Link für die Antwort oder ähnliches verweisen? Sende deine Antwort. – Sylar