Dojo - 将事件侦听器添加到动态创建的元素

Dojo - add event listener to dynamically created element

您好,我正在尝试将事件侦听器添加到动态创建的 "<a></a>" 元素,但没有成功。

这是 item/element:

var item = "<div class='item' id='" + id + "'>"
            + "<div class='cell ion-chevron-right'>"
            + "<span class='cell items'>" + text + "</span>"
            + "<a id='" + id + "_icon' class='mIcon ion-ios-close-outline' style='margin-left:-22px; font-size:18px;'></a>"
            + "</div>"
            + "<div class='cell'>" + price + "</div>"
            + "</div>";

            return item;
          }

在这里我将它插入 HTML:

var addAccessorie = function(id, text, price){
            var m = id + "_accessorie";
            dojo.place(newAccesorieItem(m, text, price)
            ,"maintenance_accessorie"
            ,"after"); // before/after
          }

如何向 DOJO 中的 "<a>" 添加 CLICK 事件?

使用dojo/dom-construct创建<a>元素,然后使用dojo/on绑定onclick事件。

var aElement= domConstruct.toDom("<a id='" + id + "_icon' class='mIcon ion-ios-close-outline'
             style='margin-left:-22px; font-size:18px;'></a>");

on(aElement, 'click', function(){
    //Your click handler
});

如果您保持代码原样不变, 你可以这样做:

    var addAccessorie = function(id, text, price){
        var m = id + "_accessorie";
        dojo.place(newAccesorieItem(m, text, price)
        ,"maintenance_accessorie"
        ,"after"); // before/after

        on(dom.byId(m + '_icon'), 'click', function(){
            //what needs to be done when <a> is clicked
        });
      }

只需要添加 dojo/domdojo/on

的要求