У меня есть страница веб-форм C #, на которой я хочу перетащить элементы html в radeditor telerik. Эта часть работает так, как ожидалось, за исключением того, что когда вы перетаскиваете элемент в редактор, я хочу, чтобы позиция курсора в radeditor следовала за курсором мыши. Он настроен аналогично этой демонстрации на веб-сайте Teleriks. За исключением того, что я использую просмотр в виде списка вместо просмотра в виде дерева. http://demos.telerik.com/aspnet-ajax/editor/examples/treeviewandeditor/defaultcs.aspx
Я пробовал имитировать щелчки на radeditor для перемещения курсора, но тут не повезло. Любые идеи?
Редактировать:
На прошлой неделе я сделал полу-рабочее решение. Это далеко не идеально, но я решил поделиться им на случай, если кто-то еще захочет сделать его лучше.
function controlDragging(sender, args) {
var event = args.get_domEvent();
var editor = $find("radEditLayout");
if (isMouseOverEditor(editor, event)) {
var x = event.pageX - event.offsetX;
var y = event.pageY - event.offsetY;
var node = editor.get_document().elementFromPoint(x, y);
if (node) {
setCaret(editor, node, 0);
}
}
}
function setCaret(editor, element, position) {
var selection = editor.getSelection(),
range = selection.getRange(true);
if (range.setStartAfter) {//W3 range
range.setStartAfter(element);
}
else { //IE7/8 textRange
range.moveToElementText(element);
range.moveStart('character', position);
}
range.collapse(true);
selection.selectRange(range);
}
function isMouseOverEditor(editor, event) {
return $telerik.isMouseOverElementEx(editor.get_contentAreaElement(), event);
}
Есть еще предложения ??