J'enseigne moi-même AJAX pour AJAXify mon site. Dans mon modèle, j'ai le code JS suivant pour obtenir des données JSON d'une vue, puis les ajouter à un div.
function filter(type) {
$.getJSON(
'/activity_stream/global-activity-stream/',
{xhr: "true", filter: type},
function(data) {
$('.mainContent').children().remove();
$(data).appendTo('.mainContent');
});
}
$(".btn").click(function () {
filter("recent");
});
}
Je pense que mon avis renvoie le code JSON correct, mais les données ne sont pas ajoutées au fichier .mainContent
div.
Cela donne cette erreur:
Uncaught TypeError: Impossible de lire la propriété 'ownerDocument' de indéfinie.
Assurez-vous de passer un sélecteur à jQuery et non à une forme de données:
$( '.my-selector' )
ne pas:
$( [ 'my-data' ] )
J'ai eu un problème similaire. J'utilisais jQuery.map mais j'avais oublié d'utiliser jQuery.map (...). Get () à la fin pour travailler avec un tableau normal.
Le même problème a été soulevé pour moi à l'intérieur de $elms.each()
.
Car:
.each(Function)
expose (au moins) deux arguments; le premier étant l'index et le second étant l'élément de l'élément actuel de la liste, etvous pourriez être tenté de faire ceci:
$elms.each((item) => $(item).addClass('wrong'));
Quand c'est ce dont vous avez besoin:
$elms.each((index, item) => $(item).addClass('wrong'));
Si vous ajoutez au DOM, assurez-vous que le contenu est compatible:
modal.find ('div.modal-body').append (content) // check content
Si vous utilisez des fonctions ES6 anon, cela entrera en conflit avec $(this)
Cela marche:
$('.dna-list').on('click', '.card', function(e) {
console.log($(this));
});
Cela ne marche pas:
$('.dna-list').on('click', '.card', (e) => {
console.log($(this));
});