Heim  >  Artikel  >  Web-Frontend  >  jquery: Lösung für das Problem, dass Delegierte wiederholt Ereignisse auslösen

jquery: Lösung für das Problem, dass Delegierte wiederholt Ereignisse auslösen

黄舟
黄舟Original
2017-06-26 10:16:392573Durchsuche

jquery: Delegate löst wiederholt das -Ereignis Lösung des Problems aus

<html>
<head>
<script type="text/javascript" src="http://www.w3school.com.cn/jquery/jquery.js"></script>
<style>
div{border:1px solid balck;padding:5px;margin:2px;}
</style>
</HEAD>
<body>
<div id="div1" >div1
    <div id="div1_1" >div1_1
        <div id="div1_1_1" >div1_1_1
            <span style="background:red; display:block; width:25px; height:25px;">span</span>
        </div>
    </div>
    <div id="div1_2" >div1_2
    </div>
</div>
</body>
<script type="text/javascript">
$(&#39;body&#39;).delegate(&#39;body>div&#39;,&#39;click&#39;,function(){alert("div");});
$(&#39;body&#39;).delegate(&#39;div>span&#39;,&#39;click&#39;,function(){alert("span");});
</script>
</HTML>

Wie kann ich vermeiden, dass das Div-Click-Ereignis ausgelöst wird, wenn ich auf den Span-Bereich klicke? ? ?

$(&#39;body&#39;).delegate(&#39;div>span&#39;,&#39;click&#39;,function(evt){ evt.stopPropagation(); alert("span");  } );

Klick-Ereignis-Bubbling von Span abbrechen. Die Antwort wurde im ersten Stock gegeben: e.stopPropagation()~

Methode 1. Verhindern Sie das Ereignis aus dem Sprudeln
Methode 2. Bestimmen Sie den Ereignisauslöser,

$(&#39;body&#39;).delegate(&#39;body>div&#39;,&#39;click&#39;,function(){
if(e.target!=$(&#39;#div1_1_1&#39;).find(&#39;span&#39;)[0]) alert("div");
});

Methode 1. Verhindern Sie, dass das Ereignis sprudelt
Methode 2. Bestimmen Sie den Ereignisauslöser,

$(&#39;body&#39;).delegate(&#39;body>div&#39;,&#39;click&#39;,function(){
if(e.target!=$(&#39;#div1_1_1&#39;).find(&#39;span&#39;)[0]) alert("div");
});
$(&#39;body&#39;).delegate(&#39;body>div&#39;,&#39;click&#39;,function(e){
if(e.target!=$(&#39;#div1_1_1&#39;).find(&#39;span&#39;)[0]) alert("div");
});

Ich habe es versucht

Das obige ist der detaillierte Inhalt vonjquery: Lösung für das Problem, dass Delegierte wiederholt Ereignisse auslösen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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