将带有click事件的超链接添加到Dojo网格

时间:2016-03-17 08:21:08

标签: javascript dojo dgrid

我的问题与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函数的超链接。

非常感谢任何帮助!谢谢!

2 个答案:

答案 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();

不确定是否有更优雅的方式来做到这一点? :)