想实现一个功能,使用list显示一系列图片;点击图片时,当前图片上显示注释信息。div结构如下:
<div class="x-scroll-content" xid="div5"> <div component="$UI/system/components/justep/list/list" class="x-list" xid="list1" data="listData"> <ul class="x-list-template" xid="listTemplateUl1"> <li xid="li1"> <div xid="div100" style="position:relative;" bind-click="div100Click"> <div bind-attr-test1="$index()" xid="div101" style="position:absolute;"></div><img src=" " alt="" xid="image1" bind-attr-src=' val("fImage")' style="width:100%;" bind-click="image1Click" />
</div> <hr xid="hr1"/> </li> </ul> </div> </div>
Model.prototype.div100Click = function(event){ var me = this; var linkData = this.comp('linkData'); // 组件对象 if(linkData.count() > 0) { var i = 0; linkData.each(function(param){ (function(i) { var style = "position:absolute;top:" + param.row.val("fPositionY") + "px;left:" + param.row.val("fPositionX") + "px;"; // var parentNode = me.getElementByXid("div101"); // dom 对象 var parentNode = $(event.currentTarget).find("[test1='" + event.bindingContext.$object.index() + "']"); // dom对象 // justep.Util.hint("parentNode:" + parentNode.html()); if(parentNode) { var flag = { "xid" : "btn" + i, "label" : param.row.val("fName"), "parentNode" : parentNode, "class" : "btn btn-link", "style" : style }; var button = new Button(flag); button.on("onClick",function(event){ justep.Util.hint("onClick:"); }); } })(i); i = i + 1; }); }
};
现在的问题是: 1. var parentNode = $(event.currentTarget).find("[test1='" + event.bindingContext.$object.index() + "']"); // dom对象 使用这个获取dom node时,可以正常创建button,但无法进入onClick()事件中。 var parentNode = me.getElementByXid("div101"); // dom 对象 使用这个获取dom node时,可以正常创建button(只会在第一个图片位置创建button,div101固定的),onClick()可以正常进入
第一种方法中,应该怎样注册click事情?
2.通过自定义属性test1获取dom node的问题, var parentNode = $(event.currentTarget).find("[test1='" + event.bindingContext.$object.index() + "']"); 使用自定义属性test1获取dom node时,只能将代码放在div100的click事件中,才能看到创建的button。 如果放在image1的click事件中,将看不到创建的button,估计dom node没有获取到。
如果使用var parentNode = me.getElementByXid("div101"),则button的click事件都是正常的。
这个是不是正常的?
期望高手的回应,谢谢!
|