Как решить перетаскивание в DukeScript?

Цель состоит в том, чтобы при перетаскивании изображения из одного раздела (#rightbox) в другой (#leftbox) и его удалении, в текстовом поле появляется текст.

Мой HTML до сих пор:

<body>
    <section id="leftbox" data-bind="event: {drop: $root.writeText}">
    </section>
    <section id="rightbox">
        <img id="pic" src="some_path...">
    </section>
    <section id="resultbox">
        <input data-bind="textInput:  message">
        <button type="button" data-bind="click: $root.writeText">Text!</button>
        <button type="button" data-bind="click: $root.reserText">Reset</button>
    </section>
</body>

Это не работает... Однако, если я заменю событие drop на mouseover, то если я наведу указатель мыши на зону #leftbox, будет запущена функция writeText.

Почему сброс не вызывает функцию? (бонусный вопрос, если события вызываются на что-то.., тогда почему мы должны использовать, например, вместо 'onmouseover' только 'mouseover')

Большое спасибо!

1 ответ

Решение

Простым решением было бы добавить "ondragover="event.preventDefault()"" в ваш #leftbox. Тогда это должно работать:

Мое воспроизведенное, но не идеальное решение:

<section id="rightbox" data-bind="event: {drag: setDragText.bind($data, 'my dragText 1'), dragend: setDragText.bind($data, '')}">
    <img id="pic" draggable="true" src="img src 1">
</section>

<section id="rightbox" data-bind="event: {drag: setDragText.bind($data, 'my dragText 2'), dragend: setDragText.bind($data, '')}">
    <img id="pic"  src="img src 2">
</section>


<section id="leftbox" ondragover="event.preventDefault()" data-bind="event: {drop: setMessageWithDragText}">
    Some section content.
</section>        


<section id="resultbox">
    <input data-bind="textInput:  message">
    <button type="button" data-bind="click: writeStandardMessage.bind($data, 'Nothing dragged!')">Text!</button>
    <button type="button" data-bind="click: resetText">Reset</button>
</section>
Другие вопросы по тегам