HTML事件

HTML事件

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        .btn{width: 140px;height: 30px;line-height: 30px;background: #00f;color: #fff;font-size: 14px;text-align:center;border-radius:5px;cursor:pointer;margin-top: 30px;}
    </style>
</head>
<body>
    <input type="button" value="弹出" onclick="alert('我是按钮')">
    <div id="btn" class="btn" onmouseover="mouseoverFn()" onmouseout="mouseoutFn()">开始</div>
    <script type="text/javascript">
        var btn=document.getElementById("btn");
        function mouseoverFn(btn){
            btn.style.background="#f00";
        }
        function mouseoutFn(btn){
            btn.style.background="#00f";
        }
    </script>
</body>
</html>

后台报错,那里写错了?在onclick()事件中我不想用this了,想利用document.getElementById(),怎么就不行了呢。另,老师对于HTML事件中调用的函数名后面是必须要加()的吗?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
好帮手慕糖 2017-08-23 18:50:37

你好,关于java的内容我们专门做前端的人员不是太了解,避免回答的不准确或者产生误导,还是请你请教专业的java人员。js中呢,若添加括号()就是调用函数,会立马执行,若不添加呢,就是当执行到这个事件的时候才会执行。

祝学习愉快~


  • 提问者 qq_诶姆_0 #1
    嗯,好的谢谢老师
    2017-08-23 18:55:20
提问者 qq_诶姆_0 2017-08-23 14:22:53
private void addOnClick(Element nodeElement,TopoNode node){
        //<menu id="hideNode" label="匿名函数" onclick="xxx()" />
        TopoNodeType type = node.type ;
        if(type == TopoNodeType.NODE && NodeUtil.isChild((String) node.getAttribute("type"))){
            createMenu(nodeElement,"查看日志","viewNodeLog") ;
            createMenu(nodeElement,"查看告警","viewNodeEvent") ;
        }else if(type == TopoNodeType.DATASOURCE){
            String deviceIp = node.getAttribute("deviceIp").toString() ;
            String securityObjectType = (String) node.getAttribute("securityObjectType") ;
            if(SID.currentUser().getAuthority().hasAuthority(deviceIp, securityObjectType)){
                createMenu(nodeElement,"查看日志","viewDataSourceLog") ;
                createMenu(nodeElement,"查看报表","viewDataSourceReport") ;
            }
        }
    }
    
    private Element createMenu(Element nodeElement,String label,String onclick){
        Element menu = nodeElement.addElement("menu") ;
        menu.addAttribute("id", UUIDUtils.compactUUID()) ;
        menu.addAttribute("label", label) ;
        menu.addAttribute("onclick", onclick) ;
        menu.addAttribute("source", nodeElement.attributeValue("id")) ;
        return menu ;
    }

上面的代码太乱了,重写了一下

老师,这个是在java里面的两个方法,这里的onclick后面接入的方法名,比如createMenu(nodeElement,"查看日志","viewDataSourceLog") ;这种viewDataSourceLog后面怎么不加()呢?这样在.java文件创建的Document的标签元素中会自动识别onclick事件给它加上()吗?

好帮手慕糖 2017-08-23 10:41:58

你好,单击事件是没有问题的呀,报错的是鼠标移入移出的事件,这里没有传参数,然后设置的时候,就不需要设置形参,且若在HTML中,这里是需要添加()的。修改的代码可参考下列代码:

<input type="button" value="弹出" onclick="alert('我是按钮')">
<div id="btn" class="btn" onmouseover="mouseoverFn()" onmouseout="mouseoutFn()">开始</div>
<script type="text/javascript">
    var btn=document.getElementById("btn");
    function mouseoverFn(){
        btn.style.background="#f00";
    }
    function mouseoutFn(){
        btn.style.background="#00f";
    }
</script>

祝学习愉快~

  • 提问者 qq_诶姆_0 #1
    private void addOnClick(Element nodeElement,TopoNode node){ //<menu id="hideNode" label="匿名函数" onclick="xxx()" /> TopoNodeType type = node.type ; if(type == TopoNodeType.NODE && NodeUtil.isChild((String) node.getAttribute("type"))){ createMenu(nodeElement,"查看日志","viewNodeLog") ; createMenu(nodeElement,"查看告警","viewNodeEvent") ; }else if(type == TopoNodeType.DATASOURCE){ String deviceIp = node.getAttribute("deviceIp").toString() ; String securityObjectType = (String) node.getAttribute("securityObjectType") ; if(SID.currentUser().getAuthority().hasAuthority(deviceIp, securityObjectType)){ createMenu(nodeElement,"查看日志","viewDataSourceLog") ; createMenu(nodeElement,"查看报表","viewDataSourceReport") ; } } } private Element createMenu(Element nodeElement,String label,String onclick){ Element menu = nodeElement.addElement("menu") ; menu.addAttribute("id", UUIDUtils.compactUUID()) ; menu.addAttribute("label", label) ; menu.addAttribute("onclick", onclick) ; menu.addAttribute("source", nodeElement.attributeValue("id")) ; return menu ; } 老师,这个是在java里面的两个方法,这里的onclick后面接入的方法名,比如createMenu(nodeElement,"查看日志","viewDataSourceLog") ;这种viewDataSourceLog后面怎么不加()呢?这样在.java文件创建的Document的标签元素中会自动识别onclick事件给它加上()吗?
    2017-08-23 14:20:43
  • 提问者 qq_诶姆_0 #2
    private void addOnClick(Element nodeElement,TopoNode node){ //<menu id="hideNode" label="匿名函数" onclick="xxx()" /> TopoNodeType type = node.type ; if(type == TopoNodeType.NODE && NodeUtil.isChild((String) node.getAttribute("type"))){ createMenu(nodeElement,"查看日志","viewNodeLog") ; createMenu(nodeElement,"查看告警","viewNodeEvent") ; }else if(type == TopoNodeType.DATASOURCE){ String deviceIp = node.getAttribute("deviceIp").toString() ; String securityObjectType = (String) node.getAttribute("securityObjectType") ; if(SID.currentUser().getAuthority().hasAuthority(deviceIp, securityObjectType)){ createMenu(nodeElement,"查看日志","viewDataSourceLog") ; createMenu(nodeElement,"查看报表","viewDataSourceReport") ; } } } private Element createMenu(Element nodeElement,String label,String onclick){ Element menu = nodeElement.addElement("menu") ; menu.addAttribute("id", UUIDUtils.compactUUID()) ; menu.addAttribute("label", label) ; menu.addAttribute("onclick", onclick) ; menu.addAttribute("source", nodeElement.attributeValue("id")) ; return menu ; }
    2017-08-23 14:21:46
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师