将带有单击事件的超链接添加到 Dojo 网格
Add hyperlink with click event to Dojo grid
我的问题类似于 Implementing a hyperlink within a dojo datagrid,并且我能够使用 formatter.
成功地将超链接标记添加到 Dojo 网格
但是,我需要在这些超链接上连接一个 click 事件,以在包含网格的 Dijit 中触发一个函数。
我有一个像下面这样的格式化程序:
var createEditLinks = function (data) {
return '<a class="my-css-class" href="#" onclick="myFunctionInsideTheDijit()">' + data.title + '</a>'
}
虽然这有效(我确实得到了网格单元格内的标记),但 myFunctionInsideTheDijit 函数不可用(除非我在全局范围内声明它)。
我稍微看了看 dom-construct,但我就是想不通如何添加在单击时调用 Dijit 函数的超链接.
非常感谢任何帮助!谢谢!
我使用 dojo/behavior 使其工作:
// Code inside Dijit's startup function
var that = this;
behavior.add({
"a.my-css-class": {
onclick: function (e) {
e.preventDefault();
that.myFunctionInsideTheDijit();
}
}
});
behavior.apply();
不确定是否有更优雅的方法? :)
比 dojo.behavior
更现代的方法是使用 on
and event delegation。 dgrid 实例已经公开了它们自己的 on
函数以使其稍微容易一些:
grid.on('a.my-css-class:click', function (event) {
...
});
我的问题类似于 Implementing a hyperlink within a dojo datagrid,并且我能够使用 formatter.
成功地将超链接标记添加到 Dojo 网格但是,我需要在这些超链接上连接一个 click 事件,以在包含网格的 Dijit 中触发一个函数。
我有一个像下面这样的格式化程序:
var createEditLinks = function (data) {
return '<a class="my-css-class" href="#" onclick="myFunctionInsideTheDijit()">' + data.title + '</a>'
}
虽然这有效(我确实得到了网格单元格内的标记),但 myFunctionInsideTheDijit 函数不可用(除非我在全局范围内声明它)。
我稍微看了看 dom-construct,但我就是想不通如何添加在单击时调用 Dijit 函数的超链接.
非常感谢任何帮助!谢谢!
我使用 dojo/behavior 使其工作:
// Code inside Dijit's startup function
var that = this;
behavior.add({
"a.my-css-class": {
onclick: function (e) {
e.preventDefault();
that.myFunctionInsideTheDijit();
}
}
});
behavior.apply();
不确定是否有更优雅的方法? :)
比 dojo.behavior
更现代的方法是使用 on
and event delegation。 dgrid 实例已经公开了它们自己的 on
函数以使其稍微容易一些:
grid.on('a.my-css-class:click', function (event) {
...
});