如何获取与放置事件位置对应的范围对象
How to get a range object that correspond to the position of a drop event?
我想将图像拖放到一个aloha可编辑字段中。
我正在看at.tapo.aloha.plugins. image插件,看起来很棒。
然而,我需要适应这个插件,以便与缩略图工作。我拖拽缩略图,当我把它拖拽到aloha可编辑器中时,html代码被动态修改,以便使用真实的图像。
GENTICS.Aloha.EventRegistry.subscribe(GENTICS.Aloha, 'editableCreated', function(event, editable) {
var the_obj = editable.obj;
jQuery(editable.obj).bind('drop', function(event){
var e = event.originalEvent;
var files = e.dataTransfer.files;
var count = files.length;
if (count < 1) {
var node = e.dataTransfer.mozSourceNode;
if (node.tagName === 'IMG') {
var html = '<img ....>'; //build the real image html code
/// The current selection but I want the drop position
var range = GENTICS.Aloha.Selection.getRangeObject();
if (!jQuery.isEmptyObject(range)) {
GENTICS.Utils.Dom.insertIntoDOM(jQuery(html), range, the_obj);
}
return false;
}
return true;
}
}
当在aloha字段中选择某些内容时,它可以正常工作。我可以得到一个范围,并将html插入到DOM的选择位置。
然而,我想得到一个范围对象,对应于我的图像被丢弃的地方。怎么做呢?
谢谢你的建议。
据我所知,通常没有一种简单的方法可以做到这一点。您可以获取落点的像素坐标(可能来自mousemove
事件),然后尝试获取该点的范围。对于这个任务,下面这个问题的答案很好地总结了它:
在FF/Webkit中从像素位置创建一个折叠区域
Tim Down告诉我没有简单的方法,我最终使用了一个变通方法:
GENTICS.Aloha.EventRegistry.subscribe(GENTICS.Aloha, 'editableCreated', function(event, editable) {
var the_obj = editable.obj;
jQuery(editable.obj).bind('drop', function(event){
setTimeout(function () {
//at this point the html is updated and can be postprocessed
//in order to turn thumbnails into the real image
//force the focus in order to make sure that the editable is activated
//this will cause the deactivated event to be triggered, and the content to be saved
the_obj.focus();
}, 0);
});
});
相关文章:
- 如何查明鼠标按下事件是否发生在滚动条上或元素中的其他任何位置
- 当元素到达屏幕上的某个位置时触发事件
- 事件在加载之前时的未定义位置
- 我如何获得“”的原始位置;ui“可拖动”;在“;drop”;事件
- 如何在按键事件发生后获取文本光标的位置
- 如何在ModestMaps / Wax中获取位置点击事件
- 当我将位置更改为绝对时,画布精灵表和触摸事件不起作用
- 如何从谷歌地图事件访问光标位置(即页面的x和y轴)
- 在 javascript 中添加事件处理程序的位置
- 如何在提交事件的底部设置窗口位置
- JQuery Mobile单击事件不起作用,具体取决于HTML中的元素位置
- JointJS-鼠标点击事件触发单元格位置更改事件
- 如何查找已添加自定义事件侦听器的位置
- 在开始联系人事件上设置新的身体位置
- 位置.重新加载事件触发按钮单击事件
- 单击在焦点丢失之前注册的位置,但在焦点丢失后运行事件
- 触摸事件对位置:固定;元素在 iOS 上无法正常工作
- Javascript-点击任意位置事件-CPM广告
- 使用joint.js更改纸张中每个单元格的位置事件
- CSS变换破坏鼠标位置事件