8
votes

Est-il préférable d'appeler des fonctions en utilisant OnClick ou Bind Events en utilisant .Click?

Supposons que j'ai un div et que je souhaite faire une certaine exécution de code lorsqu'un utilisateur clique sur ce div. Je peux accomplir cela de 2 façons.

html xxx

javascript xxx

la 2ème méthode appelle une fonction ce qui fait exactement cela, mais il est appelé par une fonction xxx

javascript xxx

ma question est que ces deux codes sont à la fois ces codes faire la même chose? et qui est plus efficace et recommandé?


2 commentaires

Stackoverflow.com/questions/12627443/JQUERY -Click-vs-onclick


@Simon merci pour le lien ne pouvait pas le trouver au début


3 Réponses :


2
votes

Cela dépend. Usuaslly si c'est quelque chose d'assez simple, je préfère utiliser Onlick = "".

D'autre part, s'il est plus complexe et que vous souhaitez exécuter beaucoup de code, je préfère utiliser des événements liés à des fins de lisibilité.

Je crois honnêtement que onclick = "" est meilleur en termes d'utilisation de la performance / de la mémoire, etc. Les événements liés que vous utilisez sont dans la couche de jQuery et avec OnClick L'événement est directement invoqué de votre élément.

C'est une question de choix, vraiment.

Quelque chose que j'aime dans les événements BIND est que vous avez des possibilités infinies sur ce qu'il faut lier et capturer des clics ou des frappes de frappe. Il existe également des plug-ins jQuery pour améliorer les événements BIND, tels que LIMITER avec le délai, etc. (Bind avec le délai est lorsque vous appuyez sur une touche et que le code est exécuté X de secondes après avoir appuyé dessus, ce qui est génial lorsque vous effectuez la recherche. sur Ajax alors qu'il empêche une demande sur chaque touche, appuyez sur

laissez-moi savoir si vous avez besoin d'informations supplémentaires.

J'espère que je vous ai donné une bonne perspicacité :)


2 commentaires

Vous pensez donc utiliser onclick = "" est plus efficace si je dois faire beaucoup d'éléments cliquant? En termes de performance, je pense aussi que cela pourrait être plus rapide, mais JQuery a .on () qui utilise un événement bouillonnant l'arbre DOM, pourrait être plus rapide que cela?


Je préférerais onclick = "" Dans de nombreux cas. Je ne lie que pour le bien de Maitnanance, car le code sera plus joliment écrit. Performance sage, onclick gagne :)



1
votes

Utiliser .Cliquez sur .Click (fonction () {} est meilleur tel qu'il suit le modèle d'enregistrement des événements standard.

et ici, vous êtes autorisé à affecter plusieurs rappels, P>

EX: P>

<script type="text/javascript">
$(document).ready(function() {
    $("#clickme").click(function() {
        alert("clicked!");
    });
    $("#clickme").click(function() {
        alert("I concur, clicked!");
    });
});
</script>


0 commentaires

1
votes

Cela dépend si si vous préférez:

1) une fonction anonyme liée au document prêt à JQuery

Ce qui signifie que votre espace de noms n'est pas encombré d'un autre nom de la fonction que vous ne vous souciez pas. Cela signifie également que le code est associé au reste des routines d'initialisation. Il vous permet également de lier plus d'un événement.

2) une manière déclarative de lier une fonction nommée.

ce qui signifie que votre fonction doit être nommée en conséquence et vous devrez effectuer la recherche du document pour voir si / où elle est liée. Il s'agit également d'un appel de sélecteur moins sûr, bien sûr, il est plus efficace de la vitesse.

Pour la clarté de codage, la plupart du temps, je vous conseillerais de séparer votre code d'initialisation JavaScript de vos déclarations HTML.


0 commentaires