欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JavaScript3:事件

程序员文章站 2022-04-05 11:15:12
...

事件

//键盘事件
		<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
	//onkeydown 按键被按下
	//onkeyup 按键松开
	//onkeypress 按下并松开
			function show(e) {
	//在事件对象里面会有属性
				var code = e.keyCode; //获取键码
				if (code == 119) {
					console.log("前进")
				} else if (code == 97) {
					console.log("往左")
				}else if (code ==13) {
					var content=document.getElementById("s").value;
					console.log("搜索:"+content)
				} else {
					console.log("其他")
				}
	//alert("按下并松开了"+code);
			}
		</script>
		</head>
		<body>
		<!-- event 事件对象,由浏览器创建 -->
				<input type="text" id="s" value="" onkeypress="show(event)" />
		</body>
		</html>

//鼠标事件
	//onmousedown 按下
	//onmouseup 松开
	//onmouseover 放上
	//onmouseout 离开
	//onmousemove 移动
        <html>
        <head>
            <meta charset="utf-8">
            <title></title>
            <style type="text/css">
                div {
                    width: 200px;
                    height: 200px;
                    background: red;
                }
            </style>
        </head>
        <body>
            <!-- this 表示绑定了该事件的元素对象 -->
            <div id="d1" onmousedown="anxia(event,this)" onmouseup="songkai(this)"
onmouseover="yishang(this)" onmouseout="yichu(this)"  onmousemove="show()">
                </div>
            </body>
        </html>
        <script type="text/javascript">
     	      function anxia(e,obj) {
     	          //var obj= document.getElementById("d1");
     	          obj.style.background = "yellow";
     	          //可以根据事件对象里面的属性,来获取用户按得是鼠标的哪个键  0 1 2
     	          var code=e.button;
     	          if(code==0){
     	              alert("左键")
     	          }else if(code==1){
     	              alert("中键")
     	          }else{
     	              alert("右键")		
     	      }
     	      function songkai(obj) {
     	          obj.style.background = "pink";
     	      }
     	      function yishang(obj) {
     	          obj.style.background = "blue";
     	      }
     	      function yichu(obj) {
     	          obj.style.background = "green";
     	      }
     	      var i=1;
     	      function show(){
     	          console.log(i++);
     	      }
     	</script>

//页面加载完成事件
        <html>
            <head>
                <meta charset="utf-8">
                <title></title>
                <script type="text/javascript">
                    //onload 页面加载完成的事件
                    window.onload = function() {
                        var btn = document.getElementsByTagName("button")[0];
                        alert(btn);
                    }
                </script>
            </head>
            <body>
                <button type="button">一个按钮</button>
            </body>
        </html>    

//表单事件
        <html>
            <head>
                <meta charset="utf-8">
                <title></title>
            </head>
            <body>
                <input type="text" id="" value="asdfasdfasdfsf" onselect="test()" />
                <select name="shuiguo" onchange="show()">
                    <option value="">选择水果</option>
                    <option value="pg">苹果</option>
                    <option value="pt">葡萄</option>
                    <option value="xj">香蕉</option>
                    <option value="tz">桃子</option>
                </select>
                <input type="radio" name="sex" id="" value="1" onchange="show1()"/><input type="radio" name="sex" id="" value="0" onchange="show2()"/><input type="checkbox" name="hobby" id="" value="yy" onchange="show3()"/>音乐

            </body>
        </html>
            <script type="text/javascript">
                function show(){
                    alert("你选择了一项下拉项")
                }

                function show1(){
                    alert("你选择了一项")
                }

                function show2(){
                    alert("你选择了一项")
                }

                function show3(){
                    alert("你选择了一项复选框")
                }

                function test(){
                    alert("选中了文本")
                }
            </script>
            
//事件对象中的属性
        <html>
            <head>
                <meta charset="utf-8">
                <title></title>
                <style type="text/css">
                    #wai{
                        margin-top: 100px;
                        height: 200px;
                        width: 200px;
                        background: yellow;
                    }
                </style>
            </head>
            <body>
                <!-- event 事件对象。 -->z
                <button type="button" id="btn" onclick="show(event,this)">一个按钮</button>


                <div id="wai" onclick="test(event)">
                    <button type="button">里面的按钮</button>
                </div>
            </body>
        </html>
        <script type="text/javascript">
            function show(e,obj) {
                //事件对象中的属性:type 获取事件类型
                //currentTarget	返回其事件监听器触发该事件的元素。
                //target	返回触发此事件的元素(事件的目标节点)。
                //alert(e.type);
                //document.getElementById("btn").style.background="red";
                //obj.style.background="red";

                //从事件对象中能够获取绑定了事件的元素对象。
                //e.target.style.background="red";
                e.currentTarget.style.background="red";


            }

            function test(e){
                // 事件对象中 两个属性的区别: target 和 currentTarget
                //target 获取的是触发了该事件的元素。
                //currentTarget 获取的是绑定了该事件的元素对象。
                var obj=e.currentTarget;
                alert(obj);

            }
        </script>

//事件冒泡
		<html>
            <head>
                <meta charset="utf-8">
                <title></title>
                <style type="text/css">
                    #one{
                        width: 300px;
                        height: 300px;
                        background: yellow;
                    }
                    #two{
                        width: 200px;
                        height: 200px;
                        background: red;
                    }
                    #three{
                        width: 100px;
                        height: 100px;
                        background:green;
                    }
                </style>
            </head>
            <body>
                <div id="one" onclick="show1(event)">
                    1
                    <div id="two" onclick="show2(event)">
                        2
                        <div id="three" onclick="show3(event)">3</div>
                    </div>
                </div>
            </body>
        </html>
        <script type="text/javascript">
            function show1(e){
                //stopPropagation()	阻止事件的冒泡行为
                e.stopPropagation();
                alert(11111)
            }
            function show2(e){
                e.stopPropagation();
                alert(22222)
            }
            function show3(e){
                e.stopPropagation();
                alert(3333)
            }
        </script>

//阻止元素的默认行为
		<html>
            <head>
                <meta charset="utf-8">
                <title></title>
            </head>
            <body>
                //a 标签有个默认行为就是 跳转页面 
                <a href="http://www.baidu.com">进入百度</a>
                //a 我们只想让a标签可以点击,但是不跳页面 
                <a href="#">进入百度</a>
                //a 我们只想让a标签可以点击,但是不跳页面 
                <a href="javascript:void(0)">进入百度</a>
                //a 我们只想让a标签可以点击,可以调用一个函数,但是不跳页面 
                <a href="javascript:void(show())">进入百度</a>
                //通过事件对象 来阻止元素默认跳转页面的行为 
                <a href="http://www.baidu.com" onclick="show2(event)">进入百度</a>
                <form action="123.html" method="post" onsubmit="tijiao(event)">
                    <input type="text" id="" name="username" value="" />
                    <input type="submit" value="提交"/>
                </form>
            </body>
        </html>
        <script type="text/javascript">
            function show() {
                alert("弹了");
            }
            function show2(e) {
                //事件对象中,有方法可以阻止元素的默认行为
                //preventDefault()阻止元素的默认行为
                e.preventDefault();
                alert("弹了222");
            }
            function tijiao(e){
                e.preventDefault(); //阻止表单同步提交的行为
                alert("提交表单,我要异步提交");
            }
        </script>

//节点的操作
		<html>
            <head>
                <meta charset="utf-8">
                <title></title>
            </head>
            <body><!-- 注释 -->
                <div id="d1">
                    <button type="button">一个按钮</button>
                </div>
            </body>
            <script type="text/javascript">
                //节点:包含,文本 标签 注释 都可以看做节点,节点之间有兄弟关系,父子关系
                //获取页面中所有的标签节点。
                var nodes = document.all;
                // for(let i=0;i<nodes.length;i++){
                // 	alert(nodes[i]);
                // }
                var obj = document.body.firstChild.nextSibling.nextSibling.firstChild.nextSibling;
                obj.style.background = "red";
                alert(obj);
                alert(obj.innerText);
                alert(obj.nodeType);
                var text=obj.firstChild;
                alert(text);
                alert(text.nodeValue);
            </script>
        </html>

//节点的操作忽略空文本和注释
		<html>
            <head>
                <meta charset="utf-8">
                <title></title>
            </head>
            <body>
                <!--注释 -->
                <div id="">
                    <div id="">
                        <button type="button">一个按钮</button>
                    </div>
                </div>
                <h1>asdfasdf</h1>
            </body>
            <script type="text/javascript">
                var obj=document.body.firstElementChild.firstElementChild.firstElementChild;
                alert(obj);
                var h=document.body.firstElementChild.nextElementSibling;
                alert(h);
                h.style.color="red";
            </script>
        	</html>

            //设置元素的css样式
                    <head>
                    <meta charset="utf-8">
                    <title></title>
                </head>
                <body>
                    <div id="d1" align="center">
                    abc
                    </div>
                </body>
            </html>
            <script type="text/javascript">
                var myDiv = document.getElementById("d1");
                //2.调用style属性来设置
                //元素对象.style.css属性名="值"
            /* 	myDiv.style.height = "200px";
                myDiv.style.width = "200px";
                myDiv.style.background = "yellow";
                //如果CSS属性 有 - 横杠 那就把横杠去掉,把横杆后面的第一个字母变大写 例如:  background-image 变成 backgroundImage
                myDiv.style.backgroundImage = "url(img/girl1.jpg)";
                myDiv.style.backgroundSize = "100% 100%"; */
                //元素对象.style.cssText="css内联样式"
                myDiv.style.cssText="height: 200px;width: 200px;background-color: aqua;"
                //var v=myDiv.align;
                //alert(v);
                myDiv.align="left";
            </script>
相关标签: java javascript