J'ai des lignes de code comme ceci:
$(this).parent().parent().children().each(function(){
// do something
});
Ça marche bien. Mais j'ai besoin d'exécuter ces lignes plusieurs fois ... J'ai donc créé une fonction et passé le paramètre $ (this) à une fonction:
myFunc( $(this) );
function myFunc(thisObj) {
thisObj.parent().parent().children().each(function(){
// do something
});
}
Mais de cette façon, cela n'a pas fonctionné.
vous pouvez vérifier ce lien.
$("#f").click(function() {
myFunc($(this));
})
function myFunc(thisObj) {
thisObj.parent().parent().children().each(function() {
alert("childs")
});
}
<div id="wordlist">
<div id="a"></div>
<div id="b">
<div id="e"></div>
<div id="f">child</div>
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
jQuery invoquera automatiquement votre fonction avec le contexte approprié.
$('#button').on('click', myFunction);
function myFunction() {
var that = $(this);
console.log(that);
}
Si vous travaillez en mode sans conflit (c'est-à-dire hors de portée globale), l'une des possibilités est:
jQuery.noConflict();
(function ($) {
$('#button').on('click', myFunction);
}(jQuery));
// or
jQuery('#button').on('click', myFunction);
function myFunction() {
var that = jQuery(this);
console.log(that);
}