为了账号安全,请及时绑定邮箱和手机立即绑定

className和DOM修改事件属性为什么不可行。

<!DOCTYPE HTML>
<html>

<head>
    <meta http-equiv="Content-Type" Content="text/html; charset=utf-8" />
    <title>javascript</title>
    <style type="text/css">
    body {
        font-size: 12px;
    }
    
    #txt,
    .txtclass {
        height: 400px;
        width: 600px;
        border: #333 solid 1px;
        padding: 5px;
    }
    
    p {
        line-height: 18px;
        text-indent: 2em;
    }
    </style>
</head>

<body class="bodyclass" onload="GiveEvent()">
    <h2 id="con">JavaScript课程</H2>
    <div id="txt" class="txtclass">
        <h5>JavaScript为网页添加动态效果并实现与用户交互的功能。</h5>
        <p>1. JavaScript入门篇,让不懂JS的你,快速了解JS。</p>
        <p>2. JavaScript进阶篇,让你掌握JS的基础语法、函数、数组、事件、内置对象、BOM浏览器、DOM操作。</p>
        <p>3. 学完以上两门基础课后,在深入学习JavaScript的变量作用域、事件、对象、运动、cookie、正则表达式、ajax等课程。</p>
    </div>
    <form>
        <!--当点击相应按钮,执行相应操作,为按钮添加相应事件-->
        <input type="button" value="改变颜色" id="btnColor" onclick="ChangeColor('')" />
        <input type="button" value="改变宽高" onclick="ChangeDimension('txt')" />
        <input type="button" value="隐藏内容" onclick="HideObj('txt')" />
        <input type="button" value="显示内容" onclick="ShowObj('txt')" />
        <input type="button" value="取消设置" onclick="ResetStyle('txt')" />
    </form>
    <script type="text/javascript">
    var myObj;
    //赋予事件属性
    function GiveEvent() {
        document.getElementById("btnColor").onclick = "ChangeColor('txt')";
    }
    //定义"改变颜色"的函数
    function ChangeColor(strID) {
        myObj = document.getElementById(strID);
        if (myObj == null) {
            alert("null");
            return;
        }
        myObj.style.color = "red";
        myObj.style.backgroundColor = "#ccc";
    }

    //定义"改变宽高"的函数
    function ChangeDimension(strID) {
        myObj = document.getElementById(strID);
        if (myObj == null) return
        myObj.style.width = "100px";
        myObj.style.height = "100px";
    }
    //定义"隐藏内容"的函数
    function HideObj(strID) {
        myObj = document.getElementById(strID);
        if (myObj == null) return
        myObj.style.display = "none";
    }

    //定义"显示内容"的函数
    function ShowObj(strID) {
        myObj = document.getElementById(strID);
        if (myObj == null) return
        myObj.style.display = "block";
    }
    //定义"取消设置"的函数
    function ResetStyle(strID) {
        myObj = document.getElementById(strID);
        if (myObj == null) return
        if (confirm("是否取消设置") == false) return
        myObj.className = "txtclass";
    }
    </script>
</body>

</html>

现在遇到两个问题:
1.取消样式,我想用className,但好像没有实现;
2.想通过DOM来修改onclick事件,也没有实现。

正在回答

1 回答

问答里面有相同的问题,你自己找找,我回答过的

0 回复 有任何疑惑可以回复我~
#1

来自疯人院的我 提问者

嗯,谢谢,我看过className那个问题,已经明白了,只是修改事件这个为什么不起作用呢,希望您再指导一下,谢谢哦。
2015-08-13 回复 有任何疑惑可以回复我~
#2

伊兮尘昔 回复 来自疯人院的我 提问者

通过DOM来改变事件document.getElementById("btnColor").onclick = "ChangeColor('txt')";这样写是不对的,这样只是你给id为btnColor元素的onclick事件添加了一行字符串,如果要写的话应该写 document.getElementById("btnColor").onclick = function(){ ChangeColor('txt');} 因为你也说了这是事件,事件调用的一定是函数,这点很重要,不管是什么事件在赋与一个函数的时候,不管是调用还是重写一个都是用function(){}这种方式
2015-08-13 回复 有任何疑惑可以回复我~
#3

来自疯人院的我 提问者 回复 伊兮尘昔

啊,原来是这样啊,哈哈。我还以为function(){...}是个语法格式,需要用实际代码来替换呢。原来是语法的一部分,呵呵,搞笑了。感谢!
2015-08-13 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

className和DOM修改事件属性为什么不可行。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信