L'objet ne prend pas en charge la propriété ou de la méthode du plus proche'
Je viens de recevoir l'info que mon jQuery ne fonctionne pas sur IE ni Bord. Dans la console j'ai le message:
Objet ne prend pas en charge la propriété ou de la méthode du plus proche'
C'est le jQuery:
$('body').on('change', 'select', function (event) {
if(event.target.id.indexOf("couche") >= 0) {
$.ajax({
url: "{{ redir2 }}",
type: "POST",
data: {
ident: event.target.id,
value: event.target.value,
iscouche: "True"
},
}).done(function (msg) {
if(msg.nothing == 1) {
var what = event.target.closest('tbody');
$(what).find("tr:gt(0)").remove();
} else {
var add = event.target.closest('tr');
var toremove = msg.toremove.split(" ");
for(var i = 0; i < toremove.length; i++) {
if(toremove[i].length > 0) {
jQuery(toremove[i]).remove();
}
}
jQuery(add).after(msg.ret);
}
});
} else {
$.ajax({
url: "{{ redir2 }}",
type: "POST",
data: {
ident: event.target.id,
value: event.target.value,
iscouche: "False"
},
}).done(function (msg) {});
}
});
Quelqu'un peut me dire si il y a un correctif pour qui?
OriginalL'auteur Jbertrand | 2016-03-22
Vous devez vous connecter pour publier un commentaire.
event.target
est un nœud DOM, pas un objet jQuery a donc pas de méthodes jQueryEn jQuery au lieu d'utiliser
$(this)
qui est un objet jQuery.Je vous conseille aussi de ne pas utiliser la cible si vous n'avez pas besoin.
Mise à JOUR: les plus récentes des navigateurs a maintenant la méthode DOM les plus proches, de sorte OPs code du travail dans les nouvelles versions des navigateurs sauf IE.
Ici est fixe, la version jQuery:
ou plus soignée:
OriginalL'auteur mplungjan
plus proche()
est défini sur jQuery, prototype, il ne peut pas être utilisé sur un objet JavaScript.event.target
est l'élément DOM sur lequel l'événement a eu lieu, à utiliser les méthodes jQuery sur elle, l'élément doivent être enveloppé dans le jQuery.Changement
à
Droit, mais comme vous avez répondu à l'utilisation de
$(this)
, je ne vais pas ajouter que, dans la réponse. :). À l'aide dethis
est correct.OriginalL'auteur Tushar
Vous devez inclose dans
$()
commeevent.target
n'est pas un élément jQueryOriginalL'auteur Ashkan Mobayen Khiabani