Добавить гиперссылку с событием клика в сетку Dojo
Мой вопрос похож на реализацию гиперссылки в сетке данных додзё, и я успешно могу добавить разметку для гиперссылок в сетку додзё с помощью средства форматирования.
Однако мне нужно подключить события щелчка по этим гиперссылкам, чтобы вызвать функцию в Dijit, содержащую сетку.
У меня есть форматер, как показано ниже:
var createEditLinks = function (data) {
return '<a class="my-css-class" href="#" onclick="myFunctionInsideTheDijit()">' + data.title + '</a>'
}
Хотя это работает (я получаю разметку внутри ячейки сетки), функция myFunctionInsideTheDijit недоступна (если я не объявлю ее в глобальной области видимости).
Я немного посмотрел на dom-construct, но просто не могу понять, как добавить гиперссылку, которая при нажатии вызывает функцию Dijit.
Любая помощь очень ценится! Спасибо!
2 ответа
Более современный способ сделать это, чем с dojo.behavior
будет использовать on
и делегирование мероприятия. Экземпляры dgrid уже выставляют свои собственные on
Функция, чтобы сделать это немного проще:
grid.on('a.my-css-class:click', function (event) {
...
});
Я прибег к использованию dojo/ поведения, чтобы заставить его работать:
// Code inside Dijit's startup function
var that = this;
behavior.add({
"a.my-css-class": {
onclick: function (e) {
e.preventDefault();
that.myFunctionInsideTheDijit();
}
}
});
behavior.apply();
Не уверен, что есть более элегантный способ сделать это?:)