JaveScript事件(被动行为)、绑定、案例:简易计算器

一、JS事件

1、onmouseenter 鼠标进入事件

2、onmouseleave鼠标离开事件(平面上的离开)

3、onmouseout鼠标离开事件(既包含平面上也包含了垂直方向上的离开)

4、onclick鼠标单击事件

二、JS事件绑定

1、简单的事件绑定

   在行内元素中直接书写事件,通过函数调用来执行

        function  btnData()

                 {

                             alert(点击了);

                  }

                       <button onclick="btnData()">按钮</button>

              (当点击按钮后 页面会弹出"点击了“提示框)

2、事件的动态绑定

      先获取元素,再进行事件的添加

<button id="btn">按钮</button>

  var btninfo=document.getElementById("btn")

     btninfo.onclick=function()

                   {

                              alert("点击了");

                     }  

3、特殊方式  即事件的监听

    先获取元素,再进行动态监听事件  addEventListener(去掉on的事件类型,事件回调函数)

<button id="btn">按钮</button>

 var btnlist=document.getElementById("btn")

  btnlist.addEventListener("click",name);

      function name()

       {

            alert("点击了");

         }


三、JaveScript事件(被动行为)、绑定、案例:简易计算器简易计算器代码

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>计算器</title>
<style>
table{
            border-collapse: collapse;
            width: 400px;
            margin: 0 auto;
            border: 1px solid black;
        }
       .tdlist{
        width: 100px;
        height: 50px;
       }
       .tdlist input{
        width: 100px;
        height: 50px;
        font-size: 2em;
       }
       .tr_first input{
        width: 200px;
        height: 50px;
        font-size: 2em;
       }
       .text input{
        width: 400px;
        height: 100px;
        font-size: 2.5em;
        text-align: right;
       }


</style>
</head>
<body>

<table>
   <tr class="text"><td colspan="4"><label for="data"></label><input type="text" disabled id="data" value=""></td></tr>
            <tr class="tr_first">
               <td colspan="2"><input type="button" class="tdlist" value="AC"></td>
               <td colspan="2"><input type="button" class="tdlist" value="DEL"></td>
            </tr>
<tr class="tdlist"><td><input type="button" value="7" class="btn"></td>
   <td><input type="button" value="8" class="btn"></td>
   <td><input type="button" value="9" class="btn"></td>
   <td><input type="button" value="*" class="btn"></td>
</tr>
<tr class="tdlist"><td><input type="button" value="4" class="btn"></td>
   <td><input type="button" value="5" class="btn"></td>
   <td><input type="button" value="6" class="btn"></td>
   <td><input type="button" value="/" class="btn"></td>
</tr>
<tr class="tdlist"><td><input type="button" value="1" class="btn"></td>
   <td><input type="button" value="2" class="btn"></td>
   <td><input type="button" value="3" class="btn"></td>
   <td><input type="button" value="-" class="btn"></td>
</tr>
<tr class="tdlist"><td><input type="button" value="0" class="btn"></td>
   <td><input type="button" value="." class="btn"></td>
   <td><input type="button" value="+" class="btn"></td>
   <td><input type="button" value="=" class="btn"></td>
</tr>
</table>
<script>
    //加载所有元素
    window.onload=function() {
//获取所有按钮
var btn = document.getElementsByClassName("btn");
//获取显示屏
var txt = document.getElementById("data");
var res=[];
var count=0;
for (var i = 0; i < btn.length; i++) {
btn[i].onclick = function () {

  if(!isNaN(this.value)||this.value==".")
  {
  if(txt.value.indexOf(".")!=-1)
{
if(this.value!=".")
{
txt.value+=this.value;
}
}
else{
txt.value+=this.value;
}


  }
  else
  {
  //存运算符
   if(this.value=="+"||this.value=="-"||this.value=="*"||this.value=="/") {
    res[res.length]=txt.value;
    res[res.length]=this.value;
    txt.value="";
    count=0;
   }
   //计算结果
   else if(this.value=="="){
    res[res.length]=txt.value;
    var result="";
    for(var i=0;i<res.length;i++){
    result+=res[i];
    }
    txt.value=eval(result);
    res=[];
   }
  }
}
}
}




</script>


</body>
</html>