Я использую этот код HTML, CSS и Javascript (в одном документе, если вы хотите проверить его):
<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>
Все (на удивление) прекрасно работает в IE, но Firefox, кажется, полностью кластеризован, когда используется этот javascript. Первый «слайд» в порядке, вы перетаскиваете, он говорит «скользящий», вы опускаете, он говорит «не скользящий». На втором «слайде» (или mousedown, если хотите) Firefox внезапно думает, что div - это изображение или ссылка, и хочет перетащить его.
Скриншот перетаскивания:
Очевидно, что синий div, наполовину расположенный в красном div, - это та, которую перетаскивают. Windows не захватывает курсор, когда вы делаете скриншот, но это знак остановки.
Есть ли способ предотвратить такое поведение по умолчанию?