我想用一个接受arg中对象的函数将onClick
事件设置为我的项。
比如:
item = domConstruct.create('li');
domAttr.set(item, 'innerHTML', structure.label);
domAttr.set(item, 'onClick', 'this.myFunction('+structure+')');
问题是:
SyntaxError: missing ] after element list
this.myFunction([object Object])
我知道它适用于以下指令:
item = domConstruct.create('li');
domAttr.set(item, 'innerHTML', structure.label);
domAttr.set(item, 'onClick', this.myFunction(structure));
但这种方式执行myFunction
时不需要单击项目。
我只想点击项目(li
),然后执行myFunction()
中的代码,但函数需要一个参数。
编辑:
非常感谢你的回答,但我已经试过了。它也不起作用。
没有错误,但我的elem"li"没有onClick属性。在HTML控制台中,我看到的是:<li>Lien1<li>
使用此代码:
domAttr.set(item, 'onClick', function(){
this.myFunction(structure);
});
因此,当我点击我的标签"谎言1"时,什么都不会发生。可能是因为没有onClick属性
这与on和lang 的问题相同
我认为这只是一个小小的改变,使它发挥作用。。。
再次感谢您的帮助。
您必须在上使用dojo,然后它才能工作
item = domConstruct.create('li');
on(item,'click',lang.hitch(this,function(){
this.myFunction(structure);
}));
你必须使用on和lang,然后它会在点击事件上附加侦听器
查看更多详细信息在这个链接链接
另一种方法类似于
item = domConstruct.create('li');
childitem = domConstruct.create('a',null,item);
现在你有两种选择,要么你这样做on(childitem,'click',lang.hitch(this,function(){
this.myFunction(structure);
}));
或者这个
domAttr.set(childitem, 'onClick', 'this.myFunction('+structure+')');
您只是在li
标记中设置onClick
属性
无需发送参数即可,
domAttr.set(item, 'onClick', "myFunction()");
但发送论点,
domAttr.set(item, 'onClick', function(){myFunction(structure)});
这只是定义函数,所以它不会调用。但请注意,在这种情况下单击li
时,structure
应该是全局变量。