Я хотел бы, чтобы пользователь перетаскивал переменные из предоставленного списка в текстовый редактор Quill, чтобы настроить свое сообщение электронной почты. Это работает при использовании textarea, но я не могу заставить его работать с текстовым редактором Quill.
var quill = new Quill('#editor', {
theme: 'bubble'
});
$(function() {
$("#allfields li").draggable({
appendTo: "body",
helper: "clone",
cursor: "select",
revert: "invalid"
});
initDroppable($("#TextArea1"));
function initDroppable($elements) {
$elements.droppable({
hoverClass: "textarea",
accept: ":not(.ui-sortable-helper)",
drop: function(event, ui) {
var $this = $(this);
var tempid = ui.draggable.text();
var dropText;
dropText = tempid;
}
});
}
});.editor_container {
width: 100%;
margin: 50px 0 0 0;
display: inline-block;
}
#editor {
background-color: #002b36;
color: #93a1a1;
width: 45%;
height: 400px;
float: left;
}
#preview {
width: 45%;
height: 400px;
float: left;
padding: 10px;
border: solid 1px #ccc;
margin: 0 0 0 5%;
}
#allfields li:hover {
cursor: pointer;
}<link rel = "stylesheet" href = "//cdn.quilljs.com/1.3.6/quill.bubble.css">
<script src = "https://code.jquery.com/jquery-3.1.1.min.js"></script>
<link href = "https://cdn.quilljs.com/1.1.6/quill.snow.css" rel = "stylesheet">
<script src = "https://cdn.quilljs.com/1.1.6/quill.js"></script>
<!--jquery UI--->
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js" type = "text/javascript"></script>
<script src = "http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/i18n/jquery-ui-i18n.min.js" type = "text/javascript"></script>
<div class = "editor_container">
<div id = "editor">
<h1>Dear {{name}},</h1>
<p>
This is to notify you that you have passed {{threshold_percent_Value}}% on your {{product}} Mobile Data Bundle
</p>
<p>
Note that once your limit is reached, you might be capped and may not be able to connect. <br>
<p>Regards,<br>{{ company_name }}</p>
</div>
<div id = "preview">
<div class = "dragitems">
<h3>
<span>Available Fields</span></h3>
<ul id = "allfields" runat = "server">
<li id = "node1">{{Name}}</li>
<li id = "node2">{{Address}}</li>
<li id = "node3">{{product}}</li>
<li id = "node11">{{Other4}}</li>
<li id = "node12">{{Other5}}</li>
</ul>
</div>
</div>
</div>Вот такой jsFiddle
Я также вижу в вашем заголовке две версии jQuery UI. Это тоже может вызвать проблемы.
Разветвил и обновил скрипку для тестирования: jsfiddle.net/Twisty/jv4q6wcs
@Twisty - Спасибо за 4-е обновление. Я вижу хороший прогресс, однако я все еще борюсь за то, чтобы разместить текст, где находится курсор, вместо добавления в конец строки.
Текущий прогресс: jsfiddle.net/Twisty/jv4q6wcs/120 Как видите, одна строка работает, а строка с переносом еще не работает.
@Twisty - Большое спасибо за помощь, но я решил пойти другим путем.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я вижу, как это может работать в теории, но будет сложно разрезать текущий текст и добавить его в вашу переменную. Редактор текста должен иметь возможность читать текущий текст, и вы можете без проблем написать новый текст обратно. Проблема будет в том, чтобы поместить текст в нужное место.