html5 fichier api exemple avec jquery?
Je voudrais utiliser html5 fichier api, en combinaison avec le drag n drop fonctionnalité (faites glisser un fichier externe sur une zone désignée et la capture de son contenu) et jquery. J'ai trouvé un travail non-jquery exemple: (html5 démo: fichier api)
var drop = document.getElementById('drop');
drop.ondragover = function () {this.className = 'focus'; return false;};
drop.ondragend = function () { this.className = ''; return false; };
drop.ondrop=function(e) {
this.className = '';
e.preventDefault();
var file = e.dataTransfer.files[0];
var reader = new FileReader();
reader.onload = function (evt) {
console.log(evt.target.result);
}
reader.readAsText(file);
};
Cela fonctionne bien. Maintenant, je voudrais faire plus d'un jquery-ish et j'ai essayé:
$("#drop").bind('ondragover',function() {this.addClass('focus'); return false;})
.bind("ondragend",function () { this.removeClass('focus'); return false;})
.bind("ondrop",function(e) {
this.removeClass("focus");
e.preventDefault();
var file = e.dataTransfer.files[0];
var reader = new FileReader();
reader.onload = function (evt) {
console.log(evt.target.result);
}
reader.readAsText(file);
});
Mais cela ne fonctionne pas, aucun des bindings événements semble se déclencher. J'ai aussi essayé de perdre la partie pour le eventnames mais qui ne fonctionne pas.
Espérons que quelqu'un ici peut briller une lumière?
ce qui concerne,
jeroen.
Vous devez vous connecter pour publier un commentaire.
La solution est simple.
on
préfixe (c'est pourquoi aucun des événements ont été jetés)this.
=>$(this).
(c'est pourquoi, lorsque les événements ont été jetés, rien n'est arrivé, il a donné une erreur).Avec moi, il a travaillé.
Gidon description résout le problème. Ici est entièrement codé exemple dans le cas où quelqu'un d'autre est à la recherche à résoudre ce problème et veut obtenir plus de détails.
JS:
CSS:
HTML:
dragend
àdragleave
en chrome et en doubleremoveclass
dansdrop