javascript的实现事件的一些实例

嘿嘿,今天学习到了事件,其实在C#中事件只需要我们触发即可实现,但是在javascript并不是这样的,在这里,事件是javascript与html的交互,就是文档或者浏览器窗口发生的一件特定的交互瞬间。其实从定义上面你很难想象吧,那么下面就简单的举例说下。

一.实现文字改变位置

<head>
    <title></title>
    <script>
        function getDomText() { //该方法适用于让“链接”和“文字”交换位置显示在提示在提示框中
            var pnode = document.getElementsByTagName("p");   //获取p元素,让他的子节点交换位置
            var str = "";
            str = document.getElementById("myspan").innerHTML; //获取id为myspan的元素的文本
            str += document.getElementById("myid").innerHTML;  //获取id为myid的元素的文本
            alert(str);
        }
    </script>
</head>
<body>
    <p>
    <a id="myid" href="#">链接</a>&nbsp;&nbsp;&nbsp;
    <span id="myspan">文字</span><br />
    <input type="button" name="name" value="按钮" onclick="getDomText()" />
   </p>
</body>

上面的button就实现了onclick单击事件,然后通过事件调用了一个方法使其文本信息改变位置。

二.替换文本信息

<script>
        function replaceTextContent(){    //该方法适用于替换文本信息
            var pnode = document.getElementById("myDom");
            pnode.innerHTML = ‘<span>一句话</span>&nbsp;<a href="">一个链接</a>‘;//改变id为myDom的元素的文本信息
        }
    </script>
<body>
    <p>
        <input type="button"  value="替换内容 " onclick=" replaceTextContent()" />
    </p>
    <p id="myDom">
        <a href="#">一个链接</a> &nbsp;<span>一句话</span>
    </p>
</body>

            

其实在这里是替换文本信息,不局限于是原来的文本信息交换位置,可以是任意内容的,嘿嘿。

三..改变图片大小

<script>
        function updateImgAttribute() {
            var imgmsg = document.getElementById("myimg"); //获取图片的元素
            imgmsg.width = "500";             //图片存在属性width和height,然后设置即可
            imgmsg.height = "500";
        }
 </script>
<body>
    <p>
        <input type="button" name="btn" value="修改属性" onclick="updateImgAttribute()" />
    </p>
    <img src="4.jpg" id="myimg" alt="加载中!" height="200" width="200"/>
</body>

              

改变图片大小其实是通过元素的属性设置即可,或者通过获取其元素,在使用setAttribute也可以实现的,这样是最简单的。

四.显示另一个元素的值

<script>
        function getOthBtnValue(btn) {         //接收一个元素节点
            var pnode =btn.parentNode;         //把传进来的这个元素作为p的子节点
            for (var i = 0; i < pnode.childNodes.length; i++) {
                if (pnode.childNodes[i] != btn && pnode.childNodes[i].nodeType == btn.nodeType) {
                    alert(pnode.childNodes[i].value); //if中的条件:当子节点满足不是btn而且子节点的类型和btn一样
                }
            }
        }
    </script>
<body>
    <p>
        <input type="button" name="btn1" value="显示btn2的值 " onclick="getOthBtnValue(this)"/>  <!--this在这里是指当前元素-->
        <input type="button" name="btn1" value="显示btn1的值 " onclick="getOthBtnValue(this)"/>
    </p>
</body>

在这里写if‘语句中的条件时间可能不太容易理解,但是我们可以寻找下pnode.childNodes的节点的个数即可知道我们的条件为什么要这样写,子节点的个数输出的是5,包括空白的文本节点等,所以在显示时间需要注意的。

五.克隆图片

<script>
        function cloneImg() {
            var imgmsg = document.getElementById("myimg");
            var newimg = imgmsg.cloneNode(true);  //在cloneNode中需要一个bool类型的参数,true表示强度
            document.getElementById("myid").appendChild(newimg); //获取p元素,然后再p元素中添加新克隆出来的元素
        }
    </script>
<body>
    <p id="myid">
        <input type="button" name="btn" value="克隆图片" onclick="cloneImg()"/>
        <br />
        <img src="4.jpg" id="myimg" alt="加载中" height="200" width="200"/>
    </p>
</body>

其实克隆图片,从名字上面的方法的名字cloneNode就知道了实现的功能,可以点击按钮克隆多张图片。

六.隐藏图片

<script>
        function showOrHide() {
            var myimg = document.getElementById("myimg");
            var displaymsg = myimg.style.display;     //display是用来显示或者隐藏
            //alert(displaymsg);
            if (displaymsg != ‘none‘) {               //当参数为none是为显示
                myimg.style.display = ‘none‘;
            }
            else {
                myimg.style.display = ‘‘;              //当为空时间为隐藏
            }
        }
    </script>
<body>
    <p id="myid">
        <input type="button" name="btn" value="隐藏图片" onclick="showOrHide()"/>
        <br />
        <img src="4.jpg" id="myimg" alt="加载中" height="200" width="200"/>
    </p>
</body>

之前没有介绍display的使用方法,它应该是style的属性,在这里需要注意的是它的参数,仅仅存在none和空。

七.文本信息排序

<script>
        function changeSeriation() {
            var ulnode = document.getElementsByTagName("ul")[0];//获取页面的ul元素, 在这里[0]是代表第一个ul
            if (ulnode.hasChildNodes) {        //判断是否包含子节点
                var length = ulnode.childNodes.length;      //获取子节点的长度
                var str = [];
                for (var i = 0; i < length; i++) {
                    str[i] = ulnode.childNodes[0];        //每次获取的子节点元素放在最前面
                    ulnode.removeChild(ulnode.childNodes[0]);  //清除当前的子节点元素,按照上面的顺序依次输出
                }
                for (var i = length-1; i >=0; i--) {
                    ulnode.appendChild(str[i]);            //这个是相反的,每次输出的排在最后一个
                }
            }
        }
    </script>
<body>
    <ul>
       <li  >item1</li>
       <li  >item2</li>
       <li  >item3</li>
       <li  >item4</li>
       <li  >item5</li>
   </ul>
<input type="button" name="btn" value="交换顺序 " onclick="changeSeriation()"/>
</body>

在这里理解起来可能刚接触不太容易理解,但是我感觉之前学习了pop方法和push方法,其实这个就是那个理解起来相似,但是最后的显示的信息还是打不同的,仅限于理解上面,

八.form表单

<script>
         window.onload = function () {
             document.getElementsByName("btn").onclick = function(e){ // 在这使用一个匿名的方法实现单击事件
             //function getAllValue(e) {
                 var formmsg = document.forms[0];      //获取第一个form元素
                 var formelements = formmsg.elements;   //获取form表单中的元素
                 //var str = "";
                 var count=0;
                 for (var i = 0; i < formelements.length; i++) {
                     //str[i] = formelements[i].name = "text";
                     //alert(formelements[i].name);
                     if (formelements[i].getAttribute("type") == "text") {
                         count++;
                     }
                     alert(count);
                 }
             }
         }
     </script>
<body>
    <form action="/" method="post">
        文本框:<input type="text" name="mytext" value="文本框 " /><br />
        单选框:<input type="radio" name="myradio" value="单选框1" /><input type="radio" name="myradio" value="单选框2" /><br />
        下拉列表:
       <select name="myselect">
        <option value="下拉列表" >==请选择==
        </option>
           <option value="下拉列表1">第一项</option>
           <option value="下拉列表2">第二项</option>
       </select>
        <br />
        <input type="button" name="name" id="btn" value="得到所有控件的value" onclick="" />
    </form>
</body>

在这里需要注意的获取form表单中的元素的value的使用和name的使用,很可惜的是我没有写出来,不知道哪出了问题,希望写出来能够改正。

九.通过一个按钮触发事件获取另一个按钮触发事件

<script>
        function changeValue() {
            var mybtnmsg = document.getElementById("btnid").click();  //元素存在一个单击事件
        }
    </script>
<body>
    <p>
        <input type="button"  value="触发按钮的事件 " onclick="changeValue()" />
        <input type="button" id="btnid"  value="按钮提示 " onclick="alert(‘我被触发了‘)" />
    </p>
</body>

十.创建新元素

 <script>
        function createNewElement() {
            document.getElementById("p1").innerHTML = "<span>我是新添加进来的文本1</span>"; //直接通过innerHTML添加文本元素

            var newspanelement = createNewElement("span");         //也可通过创建元素添加新的文本,这里创建的是span标签
            newspanelement.appendChild(document.createTextNode("我是新添加进来的文本2"));//添加文本
            var pnode = document.getElementById("p2");       //添加id为p2的p标签的的子节点span
            pnode.appendChild(newspanelement);               //把span的所有元素添加到p标签中
        }
    </script>
<body>
    <p>
    <input type="button" name="name" value="创建新元素 " onclick="createNewElement()" /></p>
    <p id="p1"></p>
    <p id="p2"></p>
</body>

十一.通过页面加载事件打开一个网页

 <script>
        //Window.onload() =function(){    //页面加载事件
        //    document.body.onclick = function () {  //元素可以实现onclick事件
        //        alert(this.innerHTML)
        //    }
        //}

        window.navigate("http://www.baidu.com");//当发生页面加载事件时间跳转到链接地址
        window.location.href = "http://www.rupeng.com";//同上
    </script>
<body>
    <body style="background-color:red">
    <p id="p">第一个DOM</p>
</body>

十二.onfocus与onblur的使用

<script>
        window.onload = function () {
            document.getElementById("txtname").onfocus = function () {     //给文本框设置一默认值,当鼠标进入时间显示空白
                this.value = ‘‘;
            };
            document.getElementById("txtname").onblur = function () {      //当鼠标离开时间仍然显示默认值
                this.value = ‘用户名‘;
            }
        }
    </script>
<body>
    <form action="/" method="post">
        <table>
            <tr><td>UserName</td><td>
                <input type="text" id="txtname" name="txtname" value="用户名 " /></td></tr>
            <tr>
                <td>UserPwd</td>
                <td>
                    <input type="password" name="txtpwd" value="密码" />
                </td>
            </tr>
            <tr>
                <td>
                    <input type="button" name="name" value="登录 " /></td>
                <td>
                    <input type="reset" name="name" value="充值 " /></td>
            </tr>
        </table>
    </form>
</body>

学习了这些实例,其实要自己直接写估计还是挺为难的,感觉还是不能自己写下来吧,不过我会更多的练习的,每次在学习做实例的时间都是非常兴奋,可以把前面学习的所有的很乱的知识使用上啦,感觉它终于有用啦,原来是实现这个功能的,就写到这里啦,发现过啦昨天好久啦,要睡觉啦,嘿嘿。

时间: 2024-12-17 15:55:58

javascript的实现事件的一些实例的相关文章

JavaScript:理解worker事件api

如果你不是很了解Event事件,建议先看我上一篇随文javascript:理解DOM事件.或者直接看下文worker api. 首先,我们需要实例一个Worker的对象,浏览器会根据新创建的worker对象新开一个接口,此接口会处理客户端与indexedDB数据库之间的通信.这里的数据库是指浏览器数据库.如果,你需要判断浏览器是否支持worker对象,详见如下代码.或者浏览器是否支持indexedDB数据库,详见同下,二者判断最好选择前者.因为IE不支持indexedDB . if(window

javascript鼠标中键滚动事件介绍

javascript鼠标中键滚动事件介绍:在实际应用中,鼠标的一些事件非常常用,例如,onclick事件.onmouseover事件等,这里就不介绍了,具体可以参阅javascript的onclick事件和javascript的onmouseover事件一章节. 还有一种事件比较少用,那就是鼠标中键滚轮滚动事件,下面就通过代码实例简单介绍一下中键滚轮事件.IE浏览器和谷歌浏览器支持mousewheel事件,也就是鼠标中键滚动事件,但是遗憾的是火狐浏览器并不支持此事件,而是支持DOMMouseSc

JavaScript HTML DOM 事件

对事件做出反应 我们可以在事件发生时执行 JavaScript,比如当用户在 HTML 元素上点击时. 如需在用户点击某个元素时执行代码,请向一个 HTML 事件属性添加 JavaScript 代码: onclick=JavaScript HTML 事件的例子: 当用户点击鼠标时 当网页已加载时 当图像已加载时 当鼠标移动到元素上时 当输入字段被改变时 当提交 HTML 表单时 当用户触发按键时 例子 1 在本例中,当用户在 <h1> 元素上点击时,会改变其内容: <h1 onclick

原生js阻止事件冒泡代码实例

原生js阻止事件冒泡代码实例:关于什么是事件冒泡这里就不多介绍了,可以参阅javascript事件冒泡简单介绍一章节,任何现象都是双刃剑,有时候利用事件冒泡能够带来便利性,但是有时候也会带来不便,下面就通过带来实例介绍一下如何阻止事件冒泡现象.代码实例如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" conte

javascript中的事件冒泡、事件捕获和事件执行顺序

谈起JavaScript的 事件,事件冒泡.事件捕获.阻止默认事件这三个话题,无论是面试还是在平时的工作中,都很难避免. DOM事件标准定义了两种事件流,这两种事件流有着显著的不同并且可能对你的应用有着相当大的影响.这两种事件流分别是捕获和冒泡.和许多Web技术一样,在它们成为标准之前,Netscape和微软各自不同地实现了它们.Netscape选择实现了捕获事件流,微软则实现了冒泡事件流.幸运的是,W3C决定组合使用这两种方法,并且大多数新浏览器都遵循这两种事件流方式. 1事件传播--冒泡与捕

jQuery阻止事件冒泡代码实例

jQuery阻止事件冒泡代码实例:本章节分享一段代码实例,此代码能够实现组织时间冒泡的功能,希望能够对大家有借鉴作用.代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>蚂蚁部落&l

Javascript中的事件委托机制

事件委托 事件委托,顾名思义,就是将本来要触发在A元素身上的事件,委托给B元素来触发,例如像onclick,onmouseover等事件都可以通过事件委托去触发. 事件委托实际上是通过事件冒泡的原理,将事件绑定在父元素或者祖先元素上,通过父元素或祖先元素触发相应的事件. 通过单纯的文字描述可能不太好理解,我们来通过代码去看看事件委托机制有哪些优点? 优点1-提高Javascript性能 使用事件委托机制绑定事件,可以减少内存的占用,从而提高事件处理速度.我们通过具体的实例来进行讲解. 我们要完成

深入理解javascript中的事件循环event-loop

前面的话 本文将详细介绍javascript中的事件循环event-loop 线程 javascript是单线程的语言,也就是说,同一个时间只能做一件事.而这个单线程的特性,与它的用途有关,作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM.这决定了它只能是单线程,否则会带来很复杂的同步问题.比如,假定JavaScript同时有两个线程,一个线程在某个DOM节点上添加内容,另一个线程删除了这个节点,这时浏览器应该以哪个线程为准? 为了利用多核CPU的计算能力,HTML

javascript中的事件

在javascript中的事件有三个方面的知识,一是事件流,二是事件处理程序,三是事件对象.下面就我个人的一点理解,分别讲述一下这三个方面的内容. 第一.事件流 事件流指的是事件按照一定的顺序触发.它有两个顺序,分别是自上而下和自下而上. 自上而下的叫做事件捕获,事件捕获指的是事件的处理将从DOM层次的根开始,而不是从触发事件的目标元素开始,事件被从目标元素的所有祖先元素依次往下传递.在这个过程中,事件会被从文档根到事件目标元素之间各个继承派生的元素所捕获,如果事件监听器在被注册时设置了useC