Как добавить изображение к элементу в dojo/dnd/Source

Я создал решение dnd с исходным и целевым местоположением. Прямо сейчас перетаскивание является двунаправленным, я хотел бы, чтобы это была однонаправленная цель к источнику. Затем из источника добавьте изображение к каждому элементу (значок удаления), чтобы пользователи могли затем щелкнуть значок и отправить запись обратно к нужной цели.

Часть 1, я пытаюсь понять, как сделать dnd однонаправленным, а часть 2, как мне добавить изображение к каждому элементу.

Спасибо

2 ответа

Решение

Есть события, которые обрабатывают это в модуле dnd.

что касается 'part1', посмотрите это http://dojotoolkit.org/reference-guide/1.8/dojo/dnd.html и установите is'Source : false на цель, которая должна быть только целью.

и с 'part2' перейдите на http://dojotoolkit.org/reference-guide/1.8/dojo/dnd.html и прочитайте о 'onDrop'. Если вы перегрузите эту функцию в вашем источнике "только для цели", вы получите доступ к удаляемым узлам.

 onDrop: function(source, nodes, copy) {
    dojo.forEach(nodes, function(node) {
       node.innerHTML += "<button title=Delete> X </button>";
    });
 }

Это то, что я получил работать.

dojo.connect(selectedInstructions, "onDndDrop", instructions.addDeleteButton);

addDeleteButton: function (source, nodes, copy, target) {
    if (source != target) {
        dojo.forEach(nodes, function(node) {
            var instructionId = node.getAttribute("id");
            var oImg = document.createElement("img");
            oImg.setAttribute('src', 'images/delete.png');
            oImg.setAttribute('alt', 'Remove');
            oImg.setAttribute('class', 'remove_instruction');
            oImg.setAttribute('onClick', "javascript:instructions.removeInstruction('" + instructionId + "')");
            document.getElementById(instructionId).appendChild(oImg); 
        });
    }
},

Затем я попытался получить on работать, так как connect амортизируется, но мне не повезло. Я должен буду вернуться к нему позже, так как сейчас у меня время, чтобы получить этот код.

on(selectedInstructions, "onDrop", instructions.addDeleteButton);
aspect.after(selectedInstructions, "onDrop", instructions.addDeleteButton);

Жаль, что документация Dojo была лучше. Спасибо за добро сообществу и его поддержке, хотя.

Другие вопросы по тегам