Estoy usando este código HTML, CSS y código Javascript (en un solo documento en conjunto si quieres probarlo):Firefox arrastra div como si fuera una imagen
<style type="text/css">
#slider_container {
width: 200px;
height: 30px;
background-color: red;
display:block;
}
#slider {
width: 20px;
height: 30px;
background-color: blue;
display:block;
position:absolute;
left:0;
}
</style>
<script type="text/javascript" src="../../js/libs/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#slider").mousedown(function() {
$(document).mousemove(function(evnt) {
$("#test").html("sliding");
}).mouseup(function() {
$("#test").html("not sliding");
$(document).unbind("mousemove mouseup");
});});
});
</script>
<div id="test">a</div>
<div id="slider_container">
<div id="slider"></div>
</div>
Todo (sorprendentemente) funciona bien en IE, pero firefox parece totalmente clusterf * ck cuando se utiliza este javascript. La primera "diapositiva" está bien, arrastre, dice "deslizamiento", suelta, dice "no se desliza". En la segunda "diapositiva" (o mousedown si lo deseas), firefox de repente piensa que div es una imagen o enlace y quiere arrastrarlo.
Captura de pantalla del arrastre:
Obviamente, el azul div-media posicionado en el div rojo es el que está siendo arrastrado. Windows no captura el cursor cuando toma una captura de pantalla, pero es una señal de alto.
¿Hay alguna manera de evitar este comportamiento predeterminado?
¿Es esto válido? .unbind ("mousemove mouseup") No encuentro eso documentado y creo que podría ser .unbind ("mousemove"). unbind ("mouseup") –