Maison > interface Web > js tutoriel > jquery empêche la résolution des problèmes de clic, de survol et de sortie de souris

jquery empêche la résolution des problèmes de clic, de survol et de sortie de souris

黄舟
Libérer: 2017-06-28 14:21:17
original
2042 Les gens l'ont consulté

<ul>
                <li class="red"><a href="javascript:void(0)">项目一</a></li>
                <li class="green"><a href="javascript:void(0)">项目二</a></li>
                <li class="green"><a href="javascript:void(0)">项目三</a></li>
                <li class="green"><a href="javascript:void(0)">项目四</a></li>
            </ul>

 $(function () {
            $.each($("li"), function (i, o) {
                $(this).children("a").click(function () {
                    allhide();
                    $(this).parent("li").attr("class", "red");
                });
                if ($(this).attr("class") != "red") {
                    $(this).mouseenter(function () {
                        $(this).attr("class", "red");
                    });
                    $(this).mouseleave(function () {
                        $(this).attr("class", "green");
                    });
                }
            });
        });
        function allhide() {
            $.each($("li"), function (i, o) {
                $(this).attr("class", "green");
            });
        }
 <style type="text/css">
        li
        {
            width: 80px;
            list-style-type: none;
        }
        .red
        {
            background-color: Red;
        }
        .green
        {
            background-color: Green;
        }
    </style>
Copier après la connexion
 $.each($("li"), function (i, o) {
            $(this).children("a").click(function (e) {
                $("li").attr("class", "green");//不用另起函数
                $(this).parent("li").attr("class", "red");
                e.stopPropagation();
            });
            if ($(this).attr("class") != "red") {
                $(this).mouseenter(function (e) {
                    $(this).attr("class", "red");
                    e.stopPropagation();
                });
                $(this).mouseleave(function (e) {
                    $(this).attr("class", "green");
                    e.stopPropagation();
                });
            }
        });
Copier après la connexion

Cela ne semble pas fonctionner. Le style de ce li est modifié lorsque l'on clique sur la souris, mais le style est supprimé lorsque la souris est éloignée je ne sais pas pourquoi <🎜. >

<script type="text/javascript">
    //这里不存在冒泡呀
    $(function () {
        $("li").each(function(){
            $(this).find("a").click(function(){
                $("li").attr("class","green");
                $(this).parent().attr("class","red");
            })
        });
    });
</script>
Copier après la connexion
Oh, ça ne bouillonne pas ? ? Ensuite, lorsque je clique et déplace la souris ici, le style change

$(this).children("a").click(function () {
                    allhide();
                    $(this).parent("li").attr("class", "red");
                });
Copier après la connexion
J'ai l'impression que c'est un problème de code. Peut-il toujours être utilisé après que votre pointeur $(this) ait été modifié ?

Utilisez une variable pour enregistrer var that = $(this) et essayez

 if ($(this).attr("class") != "red") {
                    $(this).mouseenter(function () {
                        $(this).attr("class", "red");
                    });
                    $(this).mouseleave(function () {
                        $(this).attr("class", "green");
                    });
                }
            });
Copier après la connexion
Eh bien, je l'ai compris moi-même Lorsque la souris clique sur l'événement

, la couleur. est rouge. Le style a changé, mais je n'ai pas enregistré le pointeur modifié. Voici mon code modifié :

.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal