Dojo   发布时间:2022-04-21  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了dojo – 我可以从动态创建的dijit按钮onClick传递参数吗?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想知道,我可以从动态创建的dijit按钮传递参数吗?

function TESTCallfromDynamicButton (value) {
   alert(value);
}

var thisButton = new dijit.form.button({
label : tHelineindex,id : "I_del_butt"+tHelineindex,name : "I_del_butt"+tHelineindex,onClick : TESTCallfromDynamicButton('test')
}).placeAt( thetabletd1 ) ;

好像,这不行,我试着改变这个.有用 !!

function TESTCallfromDynamicButton () {
alert('test');
}

var thisButton = new dijit.form.button({
  label : tHelineindex,onClick : TESTCallfromDynamicButton
}).placeAt( thetabletd1 ) ;

问题是,我想让函数知道,哪个按钮被点击了(因为所有按钮都是动态创建的,而按钮id是由indexnumber生成的),所以我需要将按钮本身的id传递给函数.但是通过onClick调用传递参数似乎在Dijit中不起作用.我怎样才能使它工作?

解决方法

不用担心,这是一个非常常见的Javascript错误 – 事实上,它与Dojo无关.

onClick需要一个函数对象,但实际上是在执行TESTCallfromDynamicButton(‘test’)并将此函数调用的结果赋给它.例如,如果TESTCallfromDynamicButton返回“colacat”,那么onClick事件将被赋予该字符串!那显然不是你想要的.

所以我们需要确保onClick被赋予一个函数对象,就像你在第二个例子中那样.但是我们也希望在执行时给该函数一个参数.这样做的方法是将函数调用包装在匿名函数中,如下所示:

var thisButton = new dijit.form.button({
  label : tHelineindex,onClick : function() {
    TESTCallfromDynamicButton('test');
  }
}).placeAt( thetabletd1 ) ;

这样,onClick获取一个函数对象,并使用参数执行TESTCallfromDynamicButton.

大佬总结

以上是大佬教程为你收集整理的dojo – 我可以从动态创建的dijit按钮onClick传递参数吗?全部内容,希望文章能够帮你解决dojo – 我可以从动态创建的dijit按钮onClick传递参数吗?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。