Javascript dojo将onclick事件动态连接到下拉列表项

Javascript dojo将onclick事件动态连接到下拉列表项,javascript,dojo,event-handling,Javascript,Dojo,Event Handling,我有一个搜索框发送ajax请求,从JSON responseText创建一个项目下拉列表。 我想将每个项目链接到一个“onclick”事件。但是,使用下面的代码,一旦我的下拉列表出现,所有我的事件都会同时发生(甚至不是单击) function getDropDownList(jso){ if (jso.errorCode == 0){ var result = document.createElement("div"); result.classN

我有一个搜索框发送ajax请求,从JSON responseText创建一个项目下拉列表。 我想将每个项目链接到一个“onclick”事件。但是,使用下面的代码,一旦我的下拉列表出现,所有我的事件都会同时发生(甚至不是单击)

function getDropDownList(jso){
    if (jso.errorCode == 0){
        var result = document.createElement("div");
            result.className = "resultList";

        for (var i = 0 ; i < jso.resultats.length && i < 7; i++){
            var item           = document.createElement("div");
                item.className = "item";
                item.innerHTML = jso.results[i].name + ' (' + jso.results[i].localities + ')';

            result.appendChild(item);

            dojo.connect(item, 'onclick', myEventHandler);
        }
     myToolBar.appendChild(result);
     }
}
函数getDropDownList(jso){ 如果(jso.errorCode==0){ var result=document.createElement(“div”); result.className=“resultList”; 对于(var i=0;i
有人能帮我找出这个方案的错误吗?

我建议使用dojo/on和AMD-load

//this is a way
require(["dojo/query","dojo/domReady!"], function(query){
    //Use "dojo/request" if you need Send a request.
    var result  = dojo.create("div", {class:"resultList"}, null);
    //for()...... or import "dojo/_base/array" and make forEach
    query(dojo.create('div',
                    { innerHTML: jso.results[i].name + ' (' + jso.results[i].localities + ')',
                  class:"item"//other parameters here!.
                            }, null))
    .onclick(function(e){ console.log('clicked', e.target); })//or call myEventHandler
    .place(result);
    //End for
    query(result).place('#myToolBar');//add result to Dom element with id myToolBar
    });
可以找到有关Dojo事件的更多信息


关于

我不理解您是如何创建元素列表的。我似乎看到您正在创建一组附加到父级的div,然后将该div附加到名为myToolbar的东西上。是的,就是这样。CSS让它看起来像我工具栏中搜索框下方的下拉列表。我想让我吃惊的是,如果你利用Dojo,你能不能不简单地使用Dojo自己的菜单栏技术?请参阅本页“菜单栏和更多”部分:我还不习惯Dojo。我使用的是基于Dojo 1.6框架构建的Arcgis API for javascript。我需要的是一个带有ajax建议列表的搜索框。我在1.6文档中找不到这样的工具。1.6文档有点不完整,许多示例根本不起作用。谢谢,这让我找到了答案。我只需要用Dojo1.6语法修改您的代码。最后,使用dojo.query(“.item”).connect很好。