HTML5 dragleave bir çocuk üzerinde gezinirken ateş elementi
Yaşıyorum sorun bir öğe dragleave
olay bu öğenin alt öğe üzerinde gezinirken ateş etti. Ayrıca, dragenter
ana öğe yine gezinip geri geldiğinde tetiklenir.
Ben basit bir keman yaptı: http://jsfiddle.net/pimvdb/HU6Mk/1/.
HTML:
<div id="drag" draggable="true">drag me</div>
<hr>
<div id="drop">
drop here
<p>child</p>
parent
</div>
aşağıdaki JavaScript: ile
$('#drop').bind({
dragenter: function() {
$(this).addClass('red');
},
dragleave: function() {
$(this).removeClass('red');
}
});
$('#drag').bind({
dragstart: function(e) {
e.allowedEffect = "copy";
e.setData("text/plain", "test");
}
});
Yapması gereken bir şey var sürüklemeyi bırak div
kırmızı yaparak kullanıcıya bildirme. Bu çalışır, ama eğer p
çocuğun içine sürüklerseniz, dragleave
ateş ve div
kırmızı değil artık. Geri bırakmak için hareket div
de kırmızı bir daha yapmaz. Gerekli tamamen bırakma div
çık ve tekrar kırmızı yapar.
Alt öğe içine sürüklerken ateş dragleave
önlemek mümkün mü?
CEVAP
Sadece bir referans sayaç tutmak, bir dragenter gittiğinizde artış, dragleave alınca indirim gerekiyor. Sayaç 0 - sınıfı kaldırın.
var counter = 0;
$('#drop').bind({
dragenter: function(ev) {
ev.preventDefault(); // needed for IE
counter ;
$(this).addClass('red');
},
dragleave: function() {
counter--;
if (counter === 0) {
$(this).removeClass('red');
}
}
});
here çalıştırabilirsiniz
JQuery OLMADAN üst mutlak dıv alt öğe ...
Yeni "kullanın HTML5 semantik biç...
Android web Görünümü tam ekran üzerind...
üzerinde kullanarak html5 pushstate an...
Nasıl bir sunucu üzerinde Görüntü olar...