我想将onClick
事件设置为我的项目,其中一个函数在arg中获取对象。
就像那样:
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()
中的代码,但该函数需要参数。
编辑:
非常感谢您的回答,但我已经尝试过这种方式了。 它也不起作用。
没有错误,但我的元素' li'没有onClick属性。 在HTML控制台中,我看到的是:<立GT; Lien1< /立GT;
使用此代码:
domAttr.set(item, 'onClick', function(){
this.myFunction(structure);
});
所以,当我点击我的标签&LAN1'时,没有任何反应。可能是因为没有onClick属性。 = /
与on和lang相同的问题
我认为改变它只是一件小事让它发挥作用......
再次感谢您的帮助。
答案 0 :(得分:1)
你必须使用dojo然后才能工作
item = domConstruct.create('li');
on(item,'click',lang.hitch(this,function(){
this.myFunction(structure);
}));
你必须使用on和lang然后它会在click事件上附加监听器
点击此链接link
了解更多详情另一种方法就是这样
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+')');
答案 1 :(得分:0)
您只需在onClick
标记中设置li
属性
没有发送参数就可以了,
domAttr.set(item, 'onClick', "myFunction()");
但发送论据,
domAttr.set(item, 'onClick', function(){myFunction(structure)});
这只是定义函数所以它不会调用。
但请注意,在这种情况下点击li
structure
应该是全局变量。