2014-05-06 2 views
0

Ma page HTMLjs fichier drop se identifiant principal

<div id="myID" class="front" onMouseOver="oneffect(); ondragover="dragover(this);" ondragleave="dragleave(this);"> 
    <img class="withUpload" src="../img/withUpload.png"/> 
    <span class="nbreResult">20</span> 
    <span> 
     <h1>Title</h1> 
    </span> 
</div> 

Mon écoute JS

window.addEventListener("drop",function(e){ 
    alert(e.target.id); 
    e.preventDefault(); 
    getFile(e.dataTransfer, e.target.id) 
},false); 

Lorsque je laisse tomber un fichier sur mon div, je veux obtenir l'ID, mais je viens de réaliser que si l'utilisateur dépose son fichier sur un enfant (title, img, span), alors je ne recevrai aucun identifiant, car ils n'en ont pas. Les utilisateurs doivent donc laisser tomber "zone libre". Comment puis-je faire pour obtenir mon ID DIV partout dans la DIV et pas seulement sur la "zone libre". Example

Vous pouvez voir my fiddle ainsi Hope I m clair!

Répondre

0

Je suggère que vous pouvez utiliser jQuery pour trouver la DIV parent et son ID facilement.

Non testé mais cela devrait fonctionner.

Javascript:

window.addEventListener("drop",function(e){ 
    var id = $(e.target).parents('div.front').attr('id'); 
    alert(id); 
    e.preventDefault(); 
    getFile(e.dataTransfer, e.target.id) 
},false); 
+0

J'essaie dans votre chemin, mais je ne peux pas le faire fonctionner –

+0

@WhitneyR. S'il vous plaît pouvez-vous configurer un jsfiddle.net afin que nous puissions aider et «violon» ~ ?! –

+0

Je viens de le faire. merci pour votre aide –

0

au lieu d'ajouter événement Listener à la fenêtre, l'ajouter à div myID

document.getElementByID("myID").addEventListener(....,function(){...........},...);

+0

Ce serait génial, mais j'ai un nombre aléatoire de div MyID et l'ID peut changer –

+0

que voulez-vous dire par le nombre aléatoire de div MyID ?? –

+0

des boîtes comme mon image arrivent dans ma page d'une base de données et ainsi je peux avoir une boîte ou plusieurs. Ensuite, je ne peux pas créer d'écouteur pour chaque boîte. Par boîte je veux dire mon div –

Questions connexes