Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将带有单击事件的超链接添加到Dojo网格_Javascript_Dojo_Dgrid - Fatal编程技术网

Javascript 将带有单击事件的超链接添加到Dojo网格

Javascript 将带有单击事件的超链接添加到Dojo网格,javascript,dojo,dgrid,Javascript,Dojo,Dgrid,我的问题类似于,并且我能够使用格式化程序成功地将超链接标记添加到Dojo网格中 但是,我需要在这些超链接上连接一个点击事件,以在包含网格的Dijit中触发一个函数 我有一个如下所示的格式化程序: var createEditLinks = function (data) { return '<a class="my-css-class" href="#" onclick="myFunctionInsideTheDijit()">' + data.title + '</a&

我的问题类似于,并且我能够使用格式化程序成功地将超链接标记添加到Dojo网格中

但是,我需要在这些超链接上连接一个点击事件,以在包含网格的Dijit中触发一个函数

我有一个如下所示的格式化程序:

var createEditLinks = function (data) {
   return '<a class="my-css-class" href="#" onclick="myFunctionInsideTheDijit()">' + data.title + '</a>'
}
var createEditLinks=函数(数据){
返回“”
}
虽然这是可行的(我确实在网格单元格中获得了标记),myFunctionInsideTheDijit函数不可用(除非我在全局范围中声明它)

我已经研究了一点dom构造,但我不知道如何添加一个在单击时调用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更现代的方法是使用。dgrid实例已经在函数上公开了它们自己的
,使之稍微容易一些:

grid.on('a.my-css-class:click', function (event) {
    ...
});

这似乎有点不稳定,但我会继续寻找更好的解决方案…太棒了,就像一个魅力!非常感谢你的帮助!唯一奇怪的是“event.target”变成了锚标记的内部元素,而不是锚元素本身<代码>事件。目标
将是触发事件的最内部元素<代码>此将是与选择器匹配的元素。我链接到的参考指南页面对此进行了解释。