Javascript dojox.enhancedGrid插件间接选择中的dojo.connect

Javascript dojox.enhancedGrid插件间接选择中的dojo.connect,javascript,events,dojo,grid,Javascript,Events,Dojo,Grid,我偶然发现了一个奇怪的情况 我们使用dojo和Vers。1.9. 其中dojo.connect被dojo.on替换 到目前为止一切正常。现在我想将Eventlistener(选中复选框)连接到EnhancedGrid的间接选择插件。我用dojo.on搜索解决方案,但只找到dojo.connect 对吗?我的意思是dojo.connect在dojo 1.9中通常是不推荐的 这是我在dojo端找到的代码: dojo.connect(grid.selection, 'onSelected'|'onDe

我偶然发现了一个奇怪的情况

我们使用dojo和Vers。1.9. 其中dojo.connect被dojo.on替换

到目前为止一切正常。现在我想将Eventlistener(选中复选框)连接到EnhancedGrid的间接选择插件。我用dojo.on搜索解决方案,但只找到dojo.connect

对吗?我的意思是dojo.connect在dojo 1.9中通常是不推荐的

这是我在dojo端找到的代码:

dojo.connect(grid.selection, 'onSelected'|'onDeselected', function(rowIndex){...})
参考:

这是我的代码:

if(!registry.byId("GraphGrid")){
        grid = new EnhancedGrid({
                    id: 'GraphGrid',
                    store: GraphicStore,
                    query: { ident: "*" },
                    structure: layout,
                    rowSelector: '20px',
                    keepSelection: false,
                    plugins: {
                        indirectSelection: {
                        headerSelector:false, 
                        width:"40px", 
                        styles:"text-align: center;"
                        }}                          
                    },"GridGraphicInMap");

                /*Call startup() to render the grid*/
                grid.startup();

                grid.on("rowClick", function(evt){
                    var idx = evt.rowIndex,
                        item = this.getItem(idx);
                    //  get a value out of the item
                    var value = this.store.getValue(item, "geom");
                    highlightGeometry(value,true);
                });

                dojo.connect(grid.selection, 'onSelected', getSelectedItems);

                }
                else {
                    setTimeout(function(){
                    grid.setStore(GraphicStore);
                    }, 1000);
                }...
我试图将其更改为dojo.on或grid.selection.on('Selected',getSelectedItems);但它不起作用。在这种特殊情况下,dojo.connect仍然是正确的连接方式吗

上面的代码工作正常,没有问题


您好,Miriam

您可以使用dojo.connect它不会影响事件触发。 并尝试以以下方式使用connect:

 dojo.connect(grid, 'onSelected', getSelectedItems);
或 connect(网格,'onselectionchanged',getSelectedItems)


如果其中任何一个不起作用,请告诉我。

dojo.connect(grid.selection,'onSelected',function(rowIndex){console.log(grid.getItem(rowIndex));//如果要获取所选行});谢谢你的回答,但我想你误解了我的意思。我的意思是,你应该在任何地方使用('myThingy','click',doSomething);在这种情况下,您应该使用旧的dojo.connect('myThingy',onClick,doSomething);我的问题是关于dojo.connect的,以及它是否正确使用,当它被普遍弃用时。谢谢您的回答!我想我必须修改我的问题。上面的代码运行良好,这不是问题所在。问题是:当他们说dojo 1.9中的dojo.connect通常不受欢迎,而您应该使用dojo/on来连接事件时,为什么我应该在dojo 1.9中使用它。只有在这种特定情况下,它不会以任何方式影响您的代码,即使您使用不推荐的方法,也可以使用dojo.connect或dojo/on。这就好比如果你有安卓3.0或4.4,你的最新应用程序仍然可以在你的设备上运行,类似的连接或打开,你的方法将被调用。我使用的是DojoV1.9.3,connect和on在我的代码中运行良好。您肯定是对的。正如我所说,这对我来说也很好。我只是想知道为什么dojo在这种情况下使用connect而不是on。