Maison  >  Article  >  interface Web  >  Solution au problème selon lequel les éléments chargés dynamiquement par js/jq ne peuvent pas être surveillés

Solution au problème selon lequel les éléments chargés dynamiquement par js/jq ne peuvent pas être surveillés

php是最好的语言
php是最好的语言original
2018-07-23 12:02:502756parcourir

Cet article présente la solution selon laquelle les éléments js/jq ajoutés dynamiquement ne peuvent pas déclencher d'événements de liaison. Si la version de jquery est comprise entre 1.3 et 1.8, les éléments js/jq ajoutés dynamiquement peuvent déclencher des événements de liaison.

Veuillez jeter un œil à votre version et vérifiez-la :

jquery1.6 et les versions inférieures ne prennent pas en charge les événements de délégué

jquery1.3 Les événements de délégué en direct sont pris en charge jusqu'à la version jQuery1.8

jquery1.9 et les versions ultérieures ne prennent pas en charge les événements de délégué en direct, mais l'événement on peut remplacer live

jquery1.3 et ci-dessous (hors jquery1 .3), il est temps de mettre à jour votre version de jquery. Parce que Il n'y a pas de solution, pas de solution, pas de solution, pas de solution, pas de solution, pas de solution

Si la version de jquery est comprise entre 1.3 et 1.8, l'élément ajouté dynamiquement par js/jq déclenche la solution à la méthode d'événement de liaison (il n'est pas recommandé d'utiliser l'événement on, car l'événement on n'est pas pris en charge sous la version 1.6 et une erreur sera signalée)

click例子
$('element').live('click',function(){})
element可以是动态生成的元素,可以是它的类或者id

Si la version jquery est 1.9 ou version ultérieure, l'événement délégué en direct est supprimé et peut être atteint. Solution pour les éléments ajoutés dynamiquement dans js/jq pour déclencher des événements de liaison

Remarque  : Si la page a à la fois une version basse de jq (1.3-1.8) et une version haute de jq ( jquery 1.9 ou supérieur), l'événement délégué en direct sera supprimé par les versions supérieures, même si la version de jquery est comprise entre 1.3 et 1.8, si l'événement en direct est utilisé, la page signalera une erreur.

click例子
$('父元素').on('click', '子元素', function(){})

L'élément chargé dynamiquement à ce moment doit être à l'intérieur de $('parent element'), sinon l'événement de liaison échouera. En d'autres termes, l'élément A doit être lié, mais l'élément A est généré dynamiquement, donc jq doit demander à l'élément parent de l'élément A de surveiller si un événement de clic se produit sur l'élément A.
Par exemple

<!DOCTYPE html>
<html>
<head>
    <title>js/jq 动态添加的元素不能触发绑定事件解决方案</title>
</head>
<script src="https://cdn.bootcss.com/jquery/1.9.0/jquery.js"></script><body>
<button>添加a标签</button>
<p class="a-Box">
    <a href="javascript:;" class="alt">My name is</a><br>
</p>
</body>
</html>
<script type="text/javascript">
    $(&#39;.a-Box&#39;).on(&#39;click&#39;, &#39;a&#39;, function(){
        alert(&#39;Jachin&#39;);
    })
    $(&#39;button&#39;).click(function(){
        $(&#39;p&#39;).append(&#39;<a href="javascript:;" class="alt">My name is</a><br>&#39;);
    })
</script>

Cela peut parfaitement résoudre le problème selon lequel les éléments chargés dynamiquement ne peuvent pas être surveillés.

Enfin ci-joint une version de jquery

<script src="https://cdn.bootcss.com/jquery/1.2.3/jquery.js"></script>
<script src="https://cdn.bootcss.com/jquery/1.2.6/jquery.js"></script>
<script src="https://cdn.bootcss.com/jquery/1.3.0/jquery.js"></script>
<script src="https://cdn.bootcss.com/jquery/1.4.0/jquery.js"></script>
<script src="https://cdn.bootcss.com/jquery/1.5.1/jquery.js"></script>
<script src="https://cdn.bootcss.com/jquery/1.6.1/jquery.js"></script>
<script src="https://cdn.bootcss.com/jquery/1.7/jquery.min.js"></script>
<script src="https://cdn.bootcss.com/jquery/1.8.0/jquery-1.8.0.js"></script>
<script src="https://cdn.bootcss.com/jquery/1.9.0/jquery.js"></script>
<script src="https://cdn.bootcss.com/jquery/1.10.0/jquery.js"></script>
<script src="https://cdn.bootcss.com/jquery/1.11.0/jquery.js"></script>
<script src="https://cdn.bootcss.com/jquery/1.12.0/jquery.js"></script>
<script src="https://cdn.bootcss.com/jquery/2.0.0/jquery.js"></script>
<script src="https://cdn.bootcss.com/jquery/2.1.0/jquery.js"></script>
<script src="https://cdn.bootcss.com/jquery/2.2.0/jquery.js"></script>
<script src="https://cdn.bootcss.com/jquery/3.0.0/jquery.js"></script>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script>

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!

Déclaration:
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