Принудительно нажмите на тег <img>, чтобы выбрать тег обтекания <a> - PullRequest
0 голосов
/ 25 марта 2012

Это в контексте редактора Dojo, но оно должно применяться более широко.

У меня есть тег <img>, заключенный в тег <a>:

<a><img width="146" height="109" src="/gaggleVideoProxy.do?op=thumb&amp;thumbUrl=http://i.ytimg.com/vi/xoZXdWl7BZs/default.jpg" _djrealurl="/gaggleVideoProxy.do?op=thumb&amp;thumbUrl=http://i.ytimg.com/vi/xoZXdWl7BZs/default.jpg" &ytvideoid="xoZXdWl7BZs&amp;userVideoId=1073344&quot;"></a>

Если вы нажмете на это, изображение будет выбрано.Нажатие клавиши удаления приведет к удалению изображения, но оставляет тег ссылки.

Я ищу способ обеспечить удаление тега <a> при каждом удалении тега <img>.


Обновление

Похоже, это больше вопрос API Dojo.Глядя на этот вопрос / ответ, я получил базовые инструменты для того, что мне нужно:

Как добавить прослушиватель событий в содержимое редактора dojo?

Ответы [ 2 ]

0 голосов
/ 26 марта 2012

Это работает:

_connectTagEvents: function(){
    this.editor.onLoadDeferred.addCallback(dojo.hitch(this, function(){
  this.connect(this.editor.editNode, "onclick", this._onClick);
    }));
},
_onClick: function(e){
  var target = e.target;
  var tag = target.tagName ? target.tagName.toLowerCase() : "";
  var wrapper = target.parentNode;

  if(/* TAG and/or WRAPPER are what you want*/) {        
    dojo.withGlobal(this.editor.window, "selectElement", dijit._editor.selection, [wrapper]);
  }
}

И это заставит элемент обертки быть выбранным.(Не забудьте вызвать _connectTagEvents из метода initButton().

0 голосов
/ 25 марта 2012

Вместо удаления изображения удалите родительский узел изображения.

...