Maison interface Web js tutoriel Concernant le problème d'échec de la transmission des paramètres dans l'événement de clic d'enregistrement JavaScript

Concernant le problème d'échec de la transmission des paramètres dans l'événement de clic d'enregistrement JavaScript

Feb 16, 2017 pm 05:19 PM
传递参数

Lors de l'enregistrement d'une fonction de gestionnaire d'événements de clic pour un élément html dans javaScript, par exemple, transmettez 3 paramètres à la fonction de gestionnaire. Cependant, quelle que soit la méthode suivante utilisée, les paramètres ne peuvent pas être transmis à la fonction de traitement d'événements

En tant que programmeur Java au cours des six derniers mois, j'ai écrit plus de code javaScript que de code java. était pour une banque Pour construire un système de gestion et de contrôle des caissiers, en termes d'autorisation de caissier, divers facteurs doivent être pris en compte pour l'autorisation de caissier, tels que l'autorité organisationnelle, l'autorité de type de caissier, l'autorité de poste, l'autorité commerciale, etc., et ces autorités doit être effectué plusieurs fois. Le traitement de l'intersection ou de l'union nécessite l'utilisation de beaucoup de javascript sur la page pour le contrôle. Cela a abouti à une situation dans laquelle le code javaScript est plus responsable de l'implémentation de ce module fonctionnel que le code java.

Nous devons maintenant développer un système de gestion de coffre-fort pour une banque. Ses blocs fonctionnels de base sont la gestion de la base des coffres-forts et la gestion des coffres-forts afin d'obtenir des fonctions de gestion aussi intuitives et pratiques que possible. l'architecture C/S, et les résultats du traitement sont affichés à l'opérateur en temps réel. Après plusieurs jours de réflexion et d'expérimentation, CSS javaScript java a finalement été utilisé pour le développement, java a été utilisé pour traiter la logique métier, CSS a été utilisé pour exprimer diverses. états de l'objet cible, et javaScript a été utilisé pour développer en fonction de la cible. La transition d'état de l'objet est utilisée pour réaliser sa commutation CSS.

J'ai rencontré un problème ici, c'est-à-dire lors de l'enregistrement d'une fonction de gestionnaire d'événements de clic pour un élément html en JavaScript, par exemple en passant 3 paramètres à la fonction de gestionnaire. Cependant, quelle que soit la méthode suivante utilisée (node ​​​​représente le nœud pour enregistrer l'événement, fun est la fonction de traitement d'événement), les paramètres ne peuvent pas être transmis à la fonction de traitement d'événement :

node.addEventListener('click', fun, false); 
node.attachevent('onclick', fun);
Node['onclick']=fun
Copier après la connexion

Évidemment, aucune des méthodes ne fonctionne. Attention, l'écriture est incorrecte :

node.addEventListener('click', fun(arg1,arg2,arg3), false); 
node.attachevent('onclick', fun(arg1,arg2,arg3)); 
Node['onclick']=fun(arg1,arg2,arg3)
Copier après la connexion

Heureusement, je. J'ai lu un livre "JavaScript.DOM Advanced" Programming", j'ai trouvé la solution dans ce livre. Écrivez d'abord une méthode :

function bindFunction(obj, func){ 
var args = []; 
for(var i =2; i < arguments.length; i++) { 
args.push(arguments[i]);
} 
return function(){ 
func.apply(obj, args);
}; 
};
Copier après la connexion

Ajoutez ensuite les deux méthodes suivantes à votre bibliothèque js. Si vous ne comprenez rien, vous pouvez vous référer à JavaScript. .DOM Advanced Programming", la section 2.3 du livre contient une explication de cette méthode, mais j'ai ajouté quelques modifications :

function bindFunction(obj, func){ 
var args = []; 
for(var i =2; i < arguments.length; i++) {
args.push(arguments[i]);
}
return function(){
func.apply(obj, args);
};
}; 
window[&#39;OYF_MARK&#39;][&#39;bindFunction&#39;] = bindFunction; 
function addEvent(node, type, listener){
//使用前面的方法检查兼容性以保证平稳退化
if (!isCompatible()) {
return false
} 
if (!(node = $(node))) 
return false;
if (node.addEventListener) { 
//W3C的方法(冒泡事件,如果将false改为true,则为捕获事件) 
node.addEventListener(type, listener, false); 
return true;
}
else
if (node.attachEvent) { 
//MSIE的方法 
node[&#39;e&#39; + type + listener] = listener;
node[type + listener] = function(){
node[&#39;e&#39; + type + listener](window.event);
} 
node.attachEvent(&#39;on&#39; + type, node[type + listener]); 
return true; 
}
//若两种方法都不具备则返回false 
return false;
};
window[&#39;OYF_MARK&#39;][&#39;addEvent&#39;] = addEvent;
Copier après la connexion

Les deux fonctions ci-dessus J'ai légèrement modifié le code source dans "JavaScript.DOM Advanced Programming" et je l'ai ajouté à ma propre bibliothèque js pour le réutiliser. Ensuite, vous pouvez utiliser la méthode suivante pour enregistrer des événements pour des éléments et transmettre des paramètres à la fonction de traitement d'événements :

//注册新的onclick事件处理函数
OYF_MARK.addEvent(e,&#39;click&#39;,OYF_MARK.bindFunction(e,getContainerDetail,x,y,containid));
Copier après la connexion

Plus d'articles connexes sur le problème infructueux de la transmission des paramètres lors de l'enregistrement javaScript. événement de clic Veuillez faire attention au site Web chinois PHP !

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Que dois-je faire si je rencontre l'impression de code brouillé pour les reçus en papier thermique frontal? Que dois-je faire si je rencontre l'impression de code brouillé pour les reçus en papier thermique frontal? Apr 04, 2025 pm 02:42 PM

Des questions et des solutions fréquemment posées pour l'impression de billets thermiques frontaux pour le développement frontal, l'impression de billets est une exigence commune. Cependant, de nombreux développeurs mettent en œuvre ...

Qui est payé plus de python ou de javascript? Qui est payé plus de python ou de javascript? Apr 04, 2025 am 12:09 AM

Il n'y a pas de salaire absolu pour les développeurs Python et JavaScript, selon les compétences et les besoins de l'industrie. 1. Python peut être davantage payé en science des données et en apprentissage automatique. 2. JavaScript a une grande demande dans le développement frontal et complet, et son salaire est également considérable. 3. Les facteurs d'influence comprennent l'expérience, la localisation géographique, la taille de l'entreprise et les compétences spécifiques.

Démystifier javascript: ce qu'il fait et pourquoi c'est important Démystifier javascript: ce qu'il fait et pourquoi c'est important Apr 09, 2025 am 12:07 AM

JavaScript est la pierre angulaire du développement Web moderne, et ses principales fonctions incluent la programmation axée sur les événements, la génération de contenu dynamique et la programmation asynchrone. 1) La programmation axée sur les événements permet aux pages Web de changer dynamiquement en fonction des opérations utilisateur. 2) La génération de contenu dynamique permet d'ajuster le contenu de la page en fonction des conditions. 3) La programmation asynchrone garantit que l'interface utilisateur n'est pas bloquée. JavaScript est largement utilisé dans l'interaction Web, les applications à une page et le développement côté serveur, améliorant considérablement la flexibilité de l'expérience utilisateur et du développement multiplateforme.

Comment fusionner les éléments du tableau avec le même ID dans un seul objet en utilisant JavaScript? Comment fusionner les éléments du tableau avec le même ID dans un seul objet en utilisant JavaScript? Apr 04, 2025 pm 05:09 PM

Comment fusionner les éléments du tableau avec le même ID dans un seul objet en JavaScript? Lors du traitement des données, nous rencontrons souvent la nécessité d'avoir le même ID ...

Comment réaliser des effets de défilement de parallaxe et d'animation des éléments, comme le site officiel de Shiseido?
ou:
Comment pouvons-nous réaliser l'effet d'animation accompagné d'un défilement de page comme le site officiel de Shiseido? Comment réaliser des effets de défilement de parallaxe et d'animation des éléments, comme le site officiel de Shiseido? ou: Comment pouvons-nous réaliser l'effet d'animation accompagné d'un défilement de page comme le site officiel de Shiseido? Apr 04, 2025 pm 05:36 PM

La discussion sur la réalisation des effets de défilement de parallaxe et d'animation des éléments dans cet article explorera comment réaliser le site officiel de Shiseido (https://www.shiseido.co.jp/sb/wonderland/) ...

JavaScript est-il difficile à apprendre? JavaScript est-il difficile à apprendre? Apr 03, 2025 am 12:20 AM

Apprendre JavaScript n'est pas difficile, mais c'est difficile. 1) Comprendre les concepts de base tels que les variables, les types de données, les fonctions, etc. 2) Master la programmation asynchrone et les implémenter via des boucles d'événements. 3) Utilisez les opérations DOM et promettez de gérer les demandes asynchrones. 4) Évitez les erreurs courantes et utilisez des techniques de débogage. 5) Optimiser les performances et suivre les meilleures pratiques.

La différence dans Console.Log de sortie Résultat: Pourquoi les deux appels sont-ils différents? La différence dans Console.Log de sortie Résultat: Pourquoi les deux appels sont-ils différents? Apr 04, 2025 pm 05:12 PM

Discussion approfondie des causes profondes de la différence de sortie Console.log. Cet article analysera les différences dans les résultats de sortie de la fonction Console.log dans un morceau de code et expliquera les raisons derrière. � ...

Comment implémenter la fonction de glisser-déposer et de régler la fonction de réglage similaire à VScode dans le développement frontal? Comment implémenter la fonction de glisser-déposer et de régler la fonction de réglage similaire à VScode dans le développement frontal? Apr 04, 2025 pm 02:06 PM

Explorez la mise en œuvre de la fonction de glisser et de réglage du panneau de type VScode dans le frontal. Dans le développement frontal, comment implémenter un VScode comme ...

See all articles