起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1749|回复: 5

[结贴] 动态创建行列下的组件事件无效问题

[复制链接]

13

主题

22

帖子

52

积分

初级会员

Rank: 2

积分
52
QQ
发表于 2017-6-9 15:53:00 | 显示全部楼层 |阅读模式
window下面拖拉一个panel的组件
<div component="$UI/system/components/justep/panel/panel" class="x-panel x-full"
    xid="panel1">
    <div class="x-panel-top" xid="top1"/>  
    <div class="x-panel-content" xid="content1"/>  
    <div class="x-panel-bottom" xid="bottom1"/>
  </div>

想动态的在top1下面创建一个一行+一列。   在列里面放置LabelEdit组件,LabelEdit里面放一个label和一个input。目前创建后发现input的事件无法触发
代码如下:

Model.prototype.modelParamsReceive = function(event){

                var top=this.getElementByXid("top1");
               
                var rowDiv=$('<div component="$UI/system/components/justep/row/row" class="x-row"/>');
                justep.Bind.addNodes(top, rowDiv);
               
                var colDiv=$('<div class="x-col"/>');
                justep.Bind.addNodes(rowDiv, colDiv);

                var option = {
                                parentNode : colDiv,
                                'class' : "x-label-edit x-label30"
                            };
                           
            var labelEdit = new LabelEdit(option);
               
            var labeldiv = $('<label class="x-label"/>');
            justep.Bind.addNodes(labelEdit.domNode, labeldiv);
            justep.Bind.addNodes(labeldiv, "用户编码");
            
            var inputDiv = $('<div class="x-edit"></div>');
            justep.Bind.addNodes(labelEdit.domNode, inputDiv);
               
            var inputField=$('>.x-edit', labelEdit.domNode);
            
                option = {
                         parentNode : inputField,
                        'class' : "form-control x-edit"
                    };
                    
                var input =new Input(option);
                 
                input.on("onblur", function(){
                        console.log("测试.................");
                        alert("测试.................");
                        debugger
                });
        };

经调试,目录结构和预想的一致。但是事件都是无法触发,换成放置button的点击事件也无法触发。求大神指教
发表于 2017-6-9 17:32:24 | 显示全部楼层
http://docs.wex5.com/wex5-ui-question-list-2067/

参考:http://doc.wex5.com/comp-base/#2.2
这样添加的点击事件
  1. <div data-bind='click:divClick'>
复制代码


应该是onBlur 吧!注意大小写!

或者.on('blur', function() {
建议参考下组件的源码
/UI2/system/components/justep/input/input.js
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

13

主题

22

帖子

52

积分

初级会员

Rank: 2

积分
52
QQ
 楼主| 发表于 2017-6-9 18:03:50 | 显示全部楼层
我测试了的   
如果直接挂在content1下面  是可以正常触发事件的。无论是onblur或onBlur。
option = {
                         parentNode : this.getElementByXid("content1"),
                        'class' : "form-control x-edit"
                    };   
                var input =new Input(option);
                 
                input.on("onblur", function(){
                     alert("测试.................");
                        debugger
                });

但是挂在LabelEdit里面    var inputField=$('>.x-edit', labelEdit.domNode);
            
                option = {
                         parentNode : inputField,
                        'class' : "form-control x-edit"
                    };        事件就不会触发。     不知道什么愿意  ,求大神指教
回复 支持 反对

使用道具 举报

发表于 2017-6-9 18:12:28 | 显示全部楼层
test07 发表于 2017-6-9 18:03
我测试了的   
如果直接挂在content1下面  是可以正常触发事件的。无论是onblur或onBlur。
option = {

parentNode  应该是一个dom节点对象
Element对象!

而你获取的inputField 是一个jquery 对象!
需要转成js对象才可以!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

13

主题

22

帖子

52

积分

初级会员

Rank: 2

积分
52
QQ
 楼主| 发表于 2017-6-9 18:43:02 | 显示全部楼层
liangyongfei 发表于 2017-6-9 18:12
parentNode  应该是一个dom节点对象
Element对象!

var inputField=$('>.x-edit', labelEdit.domNode);
            debugger
                option = {
                         parentNode : inputField[0],
                        'class' : "form-control x-edit"
                    };
                var input =new Input(option);         
                input.on("onblur", function(){
                        console.log("测试.................");
                        debugger
                });

修改后  调试 inputField[0]与this.getElementByXid("content1")类型一样。但是还是不能触发事件,求指教
回复 支持 反对

使用道具 举报

13

主题

22

帖子

52

积分

初级会员

Rank: 2

积分
52
QQ
 楼主| 发表于 2017-6-10 06:43:49 | 显示全部楼层
liangyongfei 发表于 2017-6-9 18:12
parentNode  应该是一个dom节点对象
Element对象!

感谢你的指点    问题确实出现在你说的这个问题上
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-11-25 16:03 , Processed in 0.078493 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表