Heim > Web-Frontend > js-Tutorial > Hauptteil

Lösung des Problems, dass von js/jq dynamisch geladene Elemente nicht überwacht werden können

php是最好的语言
Freigeben: 2018-07-23 12:02:50
Original
2721 Leute haben es durchsucht

In diesem Artikel wird die Lösung vorgestellt, dass dynamisch hinzugefügte js/jq-Elemente keine Bindungsereignisse auslösen können. Wenn die jquery-Version zwischen 1.3 und 1.8 liegt, können die dynamisch hinzugefügten js/jq-Elemente Bindungsereignisse auslösen.

Bitte schauen Sie sich Ihre Version an und beachten Sie:

jquery1.6 und niedriger unterstützen keine Delegiertenereignisse

jquery1 .3 Live-Delegiertenereignisse werden bis zur jQuery1.8-Version

unterstützt. jquery1.9 und spätere Versionen unterstützen keine Live-Delegiertenereignisse, aber das On-Ereignis kann Live

jquery1.3 und niedriger ersetzen (ausgenommen jquery1.3) ist es an der Zeit, Ihre jquery-Version zu aktualisieren. Weil Es gibt keine Lösung, keine Lösung, keine Lösung, keine Lösung, keine Lösung, keine Lösung

Wenn die JQuery-Version zwischen 1.3 und 1.8 liegt, wird das Element dynamisch von js/jq hinzugefügt löst die Lösung für die Bindungsereignismethode aus (es wird nicht empfohlen, das Ereignis „on“ zu verwenden, da das Ereignis „on“ unter Version 1.6 nicht unterstützt wird und ein Fehler gemeldet wird)

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

Wenn die JQuery-Version 1.9 ist oder höher, wird das Live-Delegat-Ereignis entfernt und bei Ausführung ausgeführt. Lösung für dynamisch hinzugefügte Elemente in js/jq, um Bindungsereignisse auszulösen

Hinweis : Wenn die Seite sowohl eine niedrige Version von jq (1.3-1.8) als auch eine hohe Version von hat jq (jquery 1.9 oder höher), das Live-Delegat-Ereignis wird von höheren Versionen entfernt. Obwohl die jquery-Version zwischen 1.3 und 1.8 liegt, meldet die Seite letztendlich einen Fehler, wenn das Live-Ereignis verwendet wird.

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

Das zu diesem Zeitpunkt dynamisch geladene Element muss sich innerhalb von $('parent element') befinden, andernfalls schlägt das Bindungsereignis fehl. Mit anderen Worten, das A-Element sollte gebunden sein, aber das A-Element wird dynamisch generiert, sodass jq das übergeordnete Element des A-Elements abrufen sollte, um zu überwachen, ob ein Klickereignis auf dem A-Element auftritt.
Zum Beispiel

<!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>
Nach dem Login kopieren

Damit kann das Problem, dass dynamisch geladene Elemente nicht überwacht werden können, perfekt gelöst werden.

Schließlich angehängt ist eine Version von 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>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonLösung des Problems, dass von js/jq dynamisch geladene Elemente nicht überwacht werden können. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!