繁体   English   中英

dojo动态连接onclick事件以下拉列表项

[英]dojo dynamically connect onclick event to drop down list item

我有一个搜索框发送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);
     }
}

有人可以帮我弄清楚这个方案有什么问题吗?

我建议使用dojo / on和AMD负载。

//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事件的更多信息,请参见此处

问候

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM