Javascript 将带有单击事件的超链接添加到Dojo网格
我的问题类似于,并且我能够使用格式化程序成功地将超链接标记添加到Dojo网格中 但是,我需要在这些超链接上连接一个点击事件,以在包含网格的Dijit中触发一个函数 我有一个如下所示的格式化程序: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&
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”变成了锚标记的内部元素,而不是锚元素本身<代码>事件。目标
将是触发事件的最内部元素<代码>此将是与选择器匹配的元素。我链接到的参考指南页面对此进行了解释。