Ajouter onclick avec CSS pseudo-élément après

Est-il possible dans mon fichier css de faire quelque chose comme ça?:

.myclass:after{
   content:"click me";
   onclick:"my_function()";
 }

Je veux ajouter, après toutes les instances de myclass un texte cliquable, dans la feuille de style css.

24
demandé sur BoltClock 2011-11-28 23:52:06

4 réponses

Est-il possible dans mon fichier css de faire quelque chose comme [voir le code ci-dessus]?

Non

La question importante à poser est pourquoi .

HTML a le contrôle de la données dans la page web. Tout CSS ou JS est spécifié via le HTML. C'est le modèle .

CSS {[16] } a le contrôle des styles , Il n'y a pas de lien entre CSS et HTML ou JavaScript. C'est la vue .

JavaScript a le contrôle des interactions dans la page Web, et a des crochets à tous les nœuds DOM. C'est le contrôleur .

En raison de cette structure MVC: HTML appartient aux fichiers .html, CSS appartient aux fichiers .css et JS appartient aux fichiers .js.

Les pseudo-éléments CSS ne créent pas de nœuds DOM. Il n'y a aucun moyen direct pour JavaScript d'accéder à un pseudo-élément défini en CSS, et il n'y a aucun moyen d'attacher un événement à ces pseudo-éléments.

Si vous avez un ensemble structure en place, et ne peut pas ajouter le contenu supplémentaire nécessaire pour produire de nouveaux liens dans le HTML, JavaScript peut ajouter dynamiquement les nouveaux éléments nécessaires qui peuvent ensuite être stylés via CSS.

JQuery rend cela très simple:

$('<span class="click-me">click me</span>').appendTo('.myclass').click(my_function);
41
répondu zzzzBov 2011-11-28 20:00:27

Eh Bien,

En utilisant expresison cela pourrait être possible pour internet explorer uniquement.

Sinon:

Non. Pas du tout, ce n'est pas ce que css est fait et intendet pour.

0
répondu The Surrican 2011-11-28 19:58:36
-2
répondu Tomas 2011-11-28 20:02:13

Non,mais vous pouvez faire comme ceci

Dans le fichier html ajouter cette section

<div class="arrow">
</div>

En css, vous pouvez faire comme ceci

.myclass div.arrow{
   content:"click me";
   onclick:"my_function()";
 }

J'espère que cela vous aidera

-4
répondu Gopal Bogati 2017-09-26 10:16:48