我的问题与Implementing a hyperlink within a dojo datagrid类似,我可以使用格式化程序成功地为超级网格添加标记。
但是,我需要在这些超链接上连接单击事件,以触发包含网格的Dijit中的函数。
我有一个如下格式化程序:
var createEditLinks = function (data) {
return '<a class="my-css-class" href="#" onclick="myFunctionInsideTheDijit()">' + data.title + '</a>'
}
虽然这有效(我确实在网格单元格中得到了标记),但 myFunctionInsideTheDijit 功能不可用(除非我在全局范围内声明它)。
我看了一下 dom-construct ,但我无法弄清楚如何在点击时添加一个调用Dijit函数的超链接。
非常感谢任何帮助!谢谢!
答案 0 :(得分:2)
使用dojo.behavior
比使用on
更现代的方法是使用on
and event delegation。 dgrid实例已经公开了他们自己的grid.on('a.my-css-class:click', function (event) {
...
});
函数,以使这更容易:
import numpy as np
(w,v) = np.linalg.eigh(M)
minw = np.amin(w)
if (np.isclose(minw,0) and minw > 0):
print M, minw
答案 1 :(得分:0)
我使用 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();
不确定是否有更优雅的方式来做到这一点? :)