我正在为Wordpress开发一个自定义的TinyMCE编辑器。 Wordpress的一个功能是图片标题,它在<div>
标记周围加<img>
。
我正在努力实现以下目标:当用户点击<img>
时,我想要选择父级。
为此,我在onMouseDown调度程序中添加了一个自定义处理程序,用于选择标题<div>
。
ed.onMouseDown.addToTop(function(ed, e) {
// Check if it is an image or image with caption
var parents = ed.dom.getParents(e.target,'div.amu_container');
if ( parents.length > 0 ) {
var container = parents[0];
// Correct selection to amu_container
ed.selection.select(container);
// Prevent default
tinymce.dom.Event.cancel(e);
}
});
一切正常:在所有onMouseDown处理程序之后,标题<div>
被很好地选中。
然后在mouseUp上一切正常,但在Chrome上,当所有onMouseUp处理程序完成后,<img>
被选中,失去了标题<div>
的先前选择。
但是mouseUp事件是defaultPrevented ...
有什么想法吗?
修改: 这是一个重现我的问题的jsfiddle:http://jsfiddle.net/nH8fj/5/
当用户点击图片或容器时,应选择整个<div>
。在逐步调试中,有效地完成了选择,但只选择了图像。
我使用的是Chrome 16.0.912.36 linux,该错误可以在最新的镀铬窗口上重现。
答案 0 :(得分:1)
e.target
适用于webkit,但不适用于IE。在那里你必须使用e.srcElement
。也许这里有与Chrome类似的问题。
我在这里找到了Chrome的错误报告:http://core.trac.wordpress.org/ticket/15848