2017-08-09 3 views
2

Je possède ce bouton:Pourquoi cette méthode inline stopPropagation call ne fonctionne-t-elle pas?

<button 
    type="button" 
    onclick='parent.parent.ExecuteCommand(14);event.stopPropagation()' 
    class="button_air-medium"> 
    <img 
     id="selectMode" 
     class="shortcutContant" 
     src="../stdicons/icon_select.gif"> 
</button> 

Comme vous pouvez le voir à l'intérieur attribue onclick j'appelle 2 fonctions ExecuteCommand et stopPropagation.

La commande d'exécution fonctionne bien mais il me semble que la méthode stopPropagation n'est pas déclenchée car l'élément sous le bouton est influencé.

Une idée de la raison pour laquelle la méthode stopPropagation ne fonctionne pas?

+0

Je pense que 'stopPropagation()' appartient à jQuery. Au lieu de cela, il suffit d'utiliser 'return false;' il devrait faire l'affaire – ihpar

+0

La question que vous devez vous poser ici est ce qui est 'event' dans ce contexte? – Liam

Répondre

1

Il n'y a probablement pas event à la disposition du gestionnaire en ligne dans le navigateur que vous utilisez

Vous aurez un temps plus facile si vous

$(function() { 
    $(".button_air-medium").on("click",function(e) { 
    e.stopPropagation(); 
    parent.parent.ExecuteCommand($(this).data("commandnumber")) 
    // or return false here 
    }); 
}); 

utilisant

<button type="button" data-commandnumber="14" 
class="button_air-medium"><img id="selectMode" class="shortcutContant" 
src="../stdicons/icon_select.gif"></button> 

Si vous voulez arrêter l'image de gérer des événements que vous pourriez essayer

$(function() { 
    $(".button_air-medium").on("click",function(e) { 
    e.stopPropagation(); 
    parent.parent.ExecuteCommand($(this).data("commandnumber")) 
    // or return false here 
    }); 
    $(".button_air-medium > img").on("click",function(e) { 
    $(this).parent().click(); 
    return false; 
    }); 
}); 

ou de trouver où il est géré et modifier ce gestionnaire

+0

J'essaye ton exemple mais ça fonctionne – Michael

+1

Que signifie "ne fonctionne pas"? Des erreurs dans la console? Rien? Changez-le pour retourner faux et cela fonctionne? Avec le code que vous avez donné je ne peux pas dire – mplungjan

+0

J'ai ajouté retourner faux dans vos commentaires, je ne reçois aucune erreur dans la console.Et l'élément sous le bouton est influencé. – Michael