最后的分数求助||添加控件时要如何添加事件呢?

TooGooo 2004-10-11 09:24:36
var eleLayer = document.createElement("DIV");
eleLayer.setAttribute("id","cra");
//eleLayer.setAttribute("onmousedown",function1());
//eleLayer.setAttribute("oncontextmenu",function2());
添加控件时要如何添加事件呢?注释掉的两句该如何修改呢?请各位帮忙解答。谢谢
...全文
231 30 打赏 收藏 举报
写回复
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
TooGooo 2004-10-12
  • 打赏
  • 举报
回复
我需要添加的事件能传送参数。。。
是是非非 2004-10-12
  • 打赏
  • 举报
回复
事件处理函数不支持参数…………

要传送参数用别的方法吧,例如全局变量或者给对象附加属性
TooGooo 2004-10-12
  • 打赏
  • 举报
回复
我需要传送参数。。。
TooGooo 2004-10-12
  • 打赏
  • 举报
回复
在这个例子里应该怎么做呢?
xijupony 2004-10-12
  • 打赏
  • 举报
回复
同意eglic(圪圪) 的说法。给全局变量或者附加属性。
TooGooo 2004-10-11
  • 打赏
  • 举报
回复
eleLayer.onmousedown = MDown(cra);
提示“尚未实现”
该咋办?
应该可以添加事件的,只是麻烦点,偶不懂该是哪个属性。。。请高人指点
风斧 2004-10-11
  • 打赏
  • 举报
回复
<PUBLIC:ATTACH EVENT="ondetach" ONEVENT="cleanup()" />
<SCRIPT LANGUAGE="JScript">
attachEvent ('onmouseover', Hilite);
attachEvent ('onmouseout', Restore);
function cleanup()
{
detachEvent ('onmouseover', Hilite);
detachEvent ('onmouseout', Restore);
}
function Hilite()
{
if (event.srcElement == element)
{
normalColor = style.color;
runtimeStyle.color = "red";
runtimeStyle.cursor = "hand";
}
}
function Restore()
{
if (event.srcElement == element)
{
runtimeStyle.color = normalColor;
runtimeStyle.cursor = "";
}
}
风斧 2004-10-11
  • 打赏
  • 举报
回复
to
大花猫:
attach不行吗?
风斧 2004-10-11
  • 打赏
  • 举报
回复
要不然你索性不传参数,在函数内部再引用
cxz7531 2004-10-11
  • 打赏
  • 举报
回复
一般情况下这样
eleLayer.onmousedown=randomMoveResultLayer;//给层添加一个处理句柄
function randomMoveResultLayer(){
//------
}
或者
eleLayer.onmousedown=function {------};//给层添加一个处理句柄

如果处理函数有多个参数,如下
eleLayer.onmousedown=function { fun1(2,3,4); };//给层添加一个处理句柄
function fun1(v1,v2,v3){
alert(v1+v2+v3);
}

TooGooo 2004-10-11
  • 打赏
  • 举报
回复
还是有问题
eleLayer.attachEvent("onmousedown",MDown(this.cra))
提示id为空或不是对象
eleLayer.attachEvent("onmousedown",MDown(this))
提示类型不匹配
风斧 2004-10-11
  • 打赏
  • 举报
回复
不对,你的cra是空间的id,那只要用this就应该可以了。
风斧 2004-10-11
  • 打赏
  • 举报
回复
用this,在函数内部用this.cra。
TooGooo 2004-10-11
  • 打赏
  • 举报
回复
cra是eleLayer.setAttribute("id","cra");
MDown是一个鼠标拖动函数
风斧 2004-10-11
  • 打赏
  • 举报
回复
如果访问对象(发出事件的),用this.
风斧 2004-10-11
  • 打赏
  • 举报
回复
MDown怎样定义的,你的cra是什么?
TooGooo 2004-10-11
  • 打赏
  • 举报
回复
eleLayer.attachEvent("onmousedown",MDown(cra));
老说类型不匹配,why?
风斧 2004-10-11
  • 打赏
  • 举报
回复
eleLayer.attachEvent ('onmouseover', YouFunctionName);
风斧 2004-10-11
  • 打赏
  • 举报
回复
用attachEvent也是可以的。如下所式。
<HTML>
<HEAD>
<title>title</title>
<script language="javascript">
var i=0;
function MDown()
{
alert("成功");
}

function create()
{
var cra=i+1;
var cleft = 530;
var ctop =280;
var eleInput = document.createElement("INPUT");
eleInput.setAttribute("id",cra);
eleInput.attachEvent("onmousedown",MDown);//添加事件
//eleInput.onmousedown = function () {MDown();}
eleInput.style.setAttribute("position","absolute");
eleInput.style.setAttribute("height","20");
eleInput.style.setAttribute("width","70");
eleInput.style.top = ctop;
eleInput.style.left = cleft;
document.body.appendChild(eleInput);
i++;
}
</script>
</HEAD>
<body >
<form id="Form1" method="post" >
<INPUT type="button" value="Create" onclick="create()" >
<INPUT style="Z-INDEX: 101; LEFT: 256px; POSITION: absolute; TOP: 432px" onclick="alert( document.body.outerHTML )" type="button" value="HTML">
</form>
</body>
</HTML>
xijupony 2004-10-11
  • 打赏
  • 举报
回复
attachEvent("onmousedown",MDown(this))
应为
attachEvent("onmousedown",MDown)

attachEvent第二个参数是函数名称,不可以加参数和括号的。这应该是一个缺陷吧。
在HTML代码中可以用 <span onmousedown="MDown(this)">span title</span>
但在JS里却不行,不知道为什么
加载更多回复(10)
发帖
JavaScript

8.7w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2004-10-11 09:24
社区公告
暂无公告