javascript中动态创建button以后,加入onclick。为何网页加载时会自动运行这个onclick事件?

mycurrent_cell=document.createElement("td");myButton=document.createElement("button")... mycurrent_cell = document.createElement("td");
myButton = document.createElement("button");
aText = document.createTextNode("置顶");
myButton.appendChild(aText);
myButton.onclick = Function("setTop('"+XMLArray+"','"+id+"');");//这里
mycurrent_cell.appendChild(myButton);
mycurrent_row.appendChild(mycurrent_cell);

如上,我使用Function可以不自动运行,但是好像Function无法传入数组对象,如果那句改成
myButton.onclick = setTop(XMLArray,id);
那么在网页加载的时候就会自动执行onclick事件,重开了浏览器还是一样。

求解惑。如何加入这个button的onclick事件,别自动运行,点击事件触发的。

我的HTML是在head里写的这些代码
然后在body上载入代码
<body onload="start()">
展开
 我来答
技术流Player
2012-03-08 · TA获得超过131个赞
知道答主
回答量:87
采纳率:0%
帮助的人:117万
展开全部
myButton.onclick = setTop(XMLArray,id);
这里不对,动态按钮onclick是不能传参的吧?
应该用
myButton.onclick=function(){
setTop(XMLArray,id);
}

试一下吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
手绘时装画
2012-03-08 · TA获得超过337个赞
知道小有建树答主
回答量:538
采纳率:0%
帮助的人:267万
展开全部
myButton.onclick = function(){setTop(XMLArray,id);}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hua11259
2012-03-08 · TA获得超过116个赞
知道小有建树答主
回答量:259
采纳率:0%
帮助的人:126万
展开全部
无语了 ,你是故意的吗?
onload就是浏览器载入触发事件啊,
不运行的话才出问题
建议你把 onload="start()" 去掉
然后在 button 控件中加入 onclick事件 来触发你写的function方法
更多追问追答
追问
我整个表格还有表格里的button都是js动态生成的。通过onload="start()",在start()这个函数里生成一个表格。如果去掉了,我如何调用这个js生成表格呢。
追答
哦 这样啊 ;明白你的意思了,
问一下你是不是直接把 你上面的方法写进start 里面了??
这样是不行的
你在.aspx中写下你的 onclick触发的 function 试试
好运
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式