Я предполагаю, что проблема в том, что в вашем обработчике onmousedown
вы используете свойства объекта srcElement
или target
объекта события. Когда вы сделаете это, вы получите самого внутреннего ребенка (из-за того, как работает пузырение ).
Однако, если вместо этого вы используете переменную this
в обработчике событий , вы получите элемент DOM, в котором вы зарегистрировали событие. Ниже приведены два примера.
Неверный пример:
<script type="text/javascript">
function onMouseDown(e) {
var event = e || window.event;
var element = event.target || event.srcElement; //refers to innermost element
onDragStart(element, event);
}
</script>
Правильный пример:
<script type="text/javascript">
function onMouseDown(e) {
var event = e || window.event;
var element = this; // refers to the element that you set the callback on
onDragStart(element, event);
}
</script>