Редактор кендо в ‹textarea› создает iframe, поэтому не может связывать внутри него какие-либо события javascript.

В моем приложении я использую редактор Kendo и инициализирую его на элементе <textarea> следующим образом:

<textarea id="foo"/>
$("foo").kendoEditor();

теперь, когда я смотрю на сгенерированный html для того же, он создает iframe для области редактора следующим образом:

<iframe src='javascript:""' frameborder="0" class="k-content">

Теперь я хочу связать события щелчка (и некоторые другие) для элементов внутри этого IFrame, но это не работает, поскольку iframe создается динамически.

Kendo Editor предоставляет некоторые события, такие как Select, KeyUp, KeyDown, но мне нужно больше событий, таких как щелчок и т. д. Итак, как я могу это сделать?

Я уже пробовал jQuery для события в классе .k-content, но это не может помочь.


person Rushi Soni    schedule 19.11.2013    source источник


Ответы (1)


Вы можете получить элемент body редактора и привязать события туда:

$("#foo").kendoEditor();

var editor = $("#foo").data("kendoEditor");

$(editor.body).click(function() {
  alert("click");
});

Вот живая демонстрация: http://jsbin.com/eLAjofA/1/edit.

person Atanas Korchev    schedule 22.11.2013
comment
есть ли способ поймать события при нажатии различных кнопок, расположенных в верхней части редактора? - person Rushi Soni; 22.11.2013
comment
@RushiSoni, да, используйте событие Execute редактора, как описано в документации (docs.telerik.com/kendo-ui/api/web/editor#events-execute). - person John Washam; 16.05.2014