| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 672 人关注过本帖
标题:提个关于用js设置事件的问题,明明设置了,动态代码却没有,但可执行。
只看楼主 加入收藏
acera002
Rank: 1
等 级:新手上路
帖 子:6
专家分:5
注 册:2009-10-29
结帖率:50%
收藏
已结贴  问题点数:6 回复次数:5 
提个关于用js设置事件的问题,明明设置了,动态代码却没有,但可执行。
HTML:
 <input type="button" value="testBtn2" onclick="testBtnClick2();" />
 <input id="testBtn3" type="button" value="testBtn3" onclick="testBtnClick3();" />

JavaScript:
function testBtnClick2() {
      var  testBtn3  =   document.getElementById("testBtn3");
      alert("testBtn3.outerHTML 1=" + testBtn3.outerHTML);
      var btn3onclick = testBtn3.onclick
      testBtn3.onclick =null;
      testBtn3.onclick = btn3onclick;
      alert("testBtn3.outerHTML 2=" + testBtn3.outerHTML);
}
function testBtnClick3() {
    alert("click3");
}

操作过程:
1。页面打开后,先按按钮2
   两次alert内容分别为:<INPUT id=testBtn3 onclick=testBtnClick3); type=button value=testBtn3>
                        <INPUT id=testBtn3 type=button value=testBtn3>
2。按按钮3
   可以弹出对话框"click3"

问题:
1。testBtnClick2方法中,一度将按钮3的onclick事件清空,但立即又将其还原。为什么两次alert的内容会不一样?
2。第二次的alert结果中,按钮3明明没有onclick事件,为什么按按钮3后,可以正常弹出对话框"click3"?
3。另外,如果把testBtn3.onclick = btn3onclick;这句话删掉,按按钮3就不能弹出对话框"click3"了,这点倒是可以理解,因为变成null了嘛。

请高手赐教!!!!
搜索更多相关主题的帖子: 代码 动态 
2009-10-29 23:03
foktime
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:奥斯维辛
等 级:贵宾
威 望:35
帖 子:795
专家分:2742
注 册:2009-9-4
收藏
得分:3 
testBtn3.onclick = btn3onclick;   
btn3onclick 事件句柄。
2009-10-31 12:45
linuxpluto
Rank: 4
等 级:贵宾
威 望:13
帖 子:889
专家分:23
注 册:2005-8-14
收藏
得分:3 
赋值方式不一样,看下面的修改
程序代码:
<input type="button" value="testBtn2" onclick="testBtnClick2();" />
<input id="testBtn3" type="button" value="testBtn3" onclick="testBtnClick3();" />

<script language="JavaScript">
<!--
function testBtnClick2() {
      var  testBtn3  =   document.getElementById("testBtn3");
      alert("testBtn3.outerHTML 1=" + testBtn3.outerHTML);

      var btn3onclick = testBtn3.onclick 
      testBtn3.onclick =null;
      testBtn3.onclick = btn3onclick;
      alert("testBtn3.outerHTML 2=" + testBtn3.outerHTML);


      testBtn3.setAttribute("onclick","testBtnClick3()");
      alert("testBtn3.outerHTML 3=" + testBtn3.outerHTML);

}
function testBtnClick3() {
    alert("click3");
}
//-->
</script>


吃的比猪还差,干的比驴还累,起的比鸡还早,睡得比小姐还晚,挣得比民工还少,看起来比谁都好——苦命的人.人生短短几十年,不要给自己留下了什么遗憾,想笑就笑,想哭就哭,该爱的时候就去爱,无谓压抑自己
2009-10-31 22:13
linuxpluto
Rank: 4
等 级:贵宾
威 望:13
帖 子:889
专家分:23
注 册:2005-8-14
收藏
得分:0 
问题:
1。testBtnClick2方法中,一度将按钮3的onclick事件清空,但立即又将其还原。为什么两次alert的内容会不一样?
2。第二次的alert结果中,按钮3明明没有onclick事件,为什么按按钮3后,可以正常弹出对话框"click3"?
3。另外,如果把testBtn3.onclick = btn3onclick;这句话删掉,按按钮3就不能弹出对话框"click3"了,这点倒是可以理解,因为变成null了嘛。

回答
1,如上一楼
2,testBtn3.onclick = btn3onclick;这地方已经指定了事件,不是表面看到的outerHTML没有就没有
3,你知道了

吃的比猪还差,干的比驴还累,起的比鸡还早,睡得比小姐还晚,挣得比民工还少,看起来比谁都好——苦命的人.人生短短几十年,不要给自己留下了什么遗憾,想笑就笑,想哭就哭,该爱的时候就去爱,无谓压抑自己
2009-10-31 22:19
acera002
Rank: 1
等 级:新手上路
帖 子:6
专家分:5
注 册:2009-10-29
收藏
得分:0 
楼上兄弟

谢谢帮我修改了代码,的确第三个注视可以显示onclick事件的内容了,但是,点击按钮3却没有对话框弹出了,不知道是我电脑的问题,还是什么。
你那边如何阿?

[ 本帖最后由 acera002 于 2009-11-7 17:37 编辑 ]
2009-11-07 17:26
acera002
Rank: 1
等 级:新手上路
帖 子:6
专家分:5
注 册:2009-10-29
收藏
得分:0 
啊,以后长记性了,竟然自动结贴了,罪过罪过。。。
2009-11-07 17:27
快速回复:提个关于用js设置事件的问题,明明设置了,动态代码却没有,但可执行。 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022681 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved