Dans ces 2 exemples, le premier fonctionne.jQuery className ne fonctionne pas
Dans le deuxième exemple que je lierdragover et DragLeave événements à img au lieu de div mais je veux changer className pour div. Les événements sont correctement détectés et aucune erreur n'est générée, mais div ne change pas sa classe.
Où est le problème?
//This work
$(document).ready(function() {
$("#framedrag").bind("dragover dragleave", function(e) {
e.stopPropagation();
e.preventDefault();
e.target.className = (e.type == "dragover" ? "hover" : "");
return false;
});
});
//This don't work
$(document).ready(function() {
$("#dragdrop").bind("dragover dragleave", function(e) {
e.stopPropagation();
e.preventDefault();
$("#framedrag").className = (e.type == "dragover" ? "hover" : "");
return false;
});
});
#framedrag
{
\t color: #555;
\t border: 2px dashed #555;
\t border-radius: 7px;
\t cursor: default;
}
#framedrag.hover
{
\t color: #3fc600;
\t border-color: #3fc600;
\t border-style: solid;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="preview-pane">
<div id="framedrag">
<div class="preview-container">
<img id="dragdrop" src="images/upload-picture.png" class="jcrop-preview" />
</div>
</div>
</div>
double possible de [jQuery dragenter ou dragover pour inclure les enfants] (https://stackoverflow.com/questions/26756176/jquery-dragenter-or- dragover-to-include-children) – Difster
@Difster J'ai vu cette réponse mais n'aide pas le problème n'est pas la même – user2272143