Sorry, wenn der Titel irgendwie verwirrend ist, werde ich einfach versuchen, es durch Code zu erklären. Im Grunde habe ich eine Schaltfläche erstellt, die den Einkaufswagen einer E-Commerce-Website anzeigt oder versteckt (ich verwende woocommerce). Hier ist ein Beispiel für den Code, den ich arbeite.Ein Klick-Ereignis funktioniert nicht, wenn es untergeordnete Elemente hat
HTML Markup
<div class="crate-status toggle-cart">
<img src="http://localhost/crate/wp-content/uploads/2016/05/mini-cart-icon.png" /><span class="crate-name">Crate:</span>
<span class="cart-contents"><?php echo sprintf (_n('%d', '%d', WC()->cart->get_cart_contents_count()), WC()->cart->get_cart_contents_count()); ?></span>
<?php woocommerce_header_add_to_cart_fragment($fragments) ?>
</div>
Javascript
$(document).ready(function() {
$('.toggle-cart').on('click', function(event) {
$('.crate-box').toggleClass('toggle');
$('.overlay-site').toggleClass('show-overlay');
})
$('body').on('click', function(event) {
if (!$(event.target).is('.toggle-cart')) {
$('.crate-box').removeClass('toggle');
$('.overlay-site').removeClass('show-overlay');
}
})
})
Die Taste funktioniert gut, aber wenn ich auf die untergeordneten Elemente wie img klicken oder umspannen es nicht scheinen die Onclick-Funktion auszulösen, obwohl sie sich in einem Elternelement befindet ent (.toggle-Warenkorb)
Hier ist der Link zur Website http://crate.ph/home/
Ich habe Ihren Code debugged, und es scheint, dass die Antwort, dass Nick scheint wahr zu sein. Das Ereignis feuert tatsächlich zweimal .. – choz