Je sais qu'il y a beaucoup de questions similaires à cela, mais je les ai toutes essayées en vain ... alors merci pour toute aide.Passer des paramètres dans les événements d'objet JavaScript en utilisant jQuery
CE QUE J'essaie de faire: Je veux passer un à de nombreux paramètres dans chacun des cases à cocher de clic 'événement lors de l'enregistrement (voir ci-dessous).
CE QUI FONCTIONNE: , je peux enregistrer l'événement sans aucun paramètre, et l'événement click soulève ... mais je dois passer dans une référence à l'objet contenant de la grille JavaScript (pour d'autres raisons).
CE QUI MANQUE J'ai essayé diverses formes de "this.MutuallyExclusiveCheckBoxHandler = function (grille) {}" en vain.
Une idée: I « pense » curryfication peut être la réponse, mais je ne sais pas comment le faire bien assez (encore).
Cette zone instantie la grille et enregistre les cases
<script type="text/javascript">
<!--
// CLASS
function CommitImporterGrid() {
// PROPERTIES
this.Toaster = new Toaster();
this.CheckBoxes = new Array();
// METHODS
this.RegisterMutuallyExclusiveCheckBox = function(clientId) {
var checkBox = $j('input:checkbox#' + clientId);
// HERE: "I need to pass a reference to the grid somehow"
$j(checkBox).click(this.MutuallyExclusiveCheckBoxHandler);
this.CheckBoxes.push(checkBox); // Append to array
}
this.MutuallyExclusiveCheckBoxHandler = function() {
// The checkbox events break when I try to add a parameter.
var myGrid = "I need to retreive the grid reference here somehow";
if (!$j(this).is(':checked')) { // They clicked on the same checkbox
this.checked = true;
return;
}
// ...other code...
}
}
// CLASS INSTANCE
var myGrid = new CommitImporterGrid();
// DOM EVENT: Document.Ready()
$j(document).ready(function() {
// DYNAMIC REGISTRATION
myGrid.RegisterMutuallyExclusiveCheckBox('chkCommitImporter01');
myGrid.RegisterMutuallyExclusiveCheckBox('chkCommitImporter02');
});
-->
</script>
Ceci n'obtiendra pas le bon 'this'. – SLaks
@SLaks: Pourquoi? Il devrait, autrement, 'this.MutuallyExclusiveCheckBoxHandler' ne fonctionnera pas non plus. –
A l'intérieur du gestionnaire, 'this' sera l'élément DOM. – SLaks