文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

jQuery中的事件、动画、表单的应用方式

2024-04-02 19:55

关注

本篇内容介绍了“jQuery中的事件、动画、表单的应用方式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

什么是事件?

页面对不同访问者的响应叫做事件。事件处理程序指的是当 HTML 中发生某些事件时所调用的方法。在事件中经常使用术语 " 触发 " (或 " 激发 " )常用click()方法触发

DOM的加载

$(document).ready() 方法与 window.onload () 方法的区别:

jQuery中的事件、动画、表单的应用方式

事件绑定

使用bind()方法为每个匹配元素的特定事件绑定事件处理函数。bind() 方法的调用格式: bind(type,[data], fn )

type: 含有一个或多个事件类型的字符串,由空格分隔多个事件。比如 "click" 或 "submit" ,还可以是自定义事件名。
data: 作为 event.data 属性值传递给事件对象的额外数据对象
fn : 绑定到每个匹配元素的事件上面的处理函数

实例:

//事件绑定
$("#btn1").bind("click",function(){
   alert("点我触发bind函数");
})

<button id="btn1">点我触发bind函数</button>

使用 jQuery 的 is()方法判断元素是否可见,使用is()方法:

alert($("button").parent().is("body"));
 
alert("#btn2").is(":visible");
$("#btn2").click(function(){
    if($("#b1").is(":visible")){
        //$(this).next().css();
         $(this).next().hide();
    }else{
        $(this).next().show();
    }
})

合成事件-hover()

hover()模拟光标悬停事件. 当光标移动到元素上时, 会触发指定的第一个函数, 当光标移出这个元素时, 会触发指定的第二个函数。

hover() 方法语法结构为: hover([over,]out)

• over: 鼠标移到元素上要触发的函数
• out: 鼠标移出元素要触发的函数

实例:

web前端开发学习Q-q-u-n: ⑦⑧④-⑦⑧③-零①②,分享学习的方法和需要注意的小细节,不停更新最新的教程和学习方法(详细的前端项目实战教学视频)
$(function(){           
    
     $("#btn2").hover(function(){
         $(this).next().show();
     },function(){
        $(this).next().hide();
     })
})

<button id="btn1">点我触发bind函数</button>
<button id="btn2">隐藏或者显示</button>
<div id="b1" >
    <img src="img/log.jpg"/>
</div>

合成事件-toggle(): 用于模拟鼠标连续单击事件. 第一次单击元素, 触发指定的第一个函数, 当再一次单击同一个元素时, 则触发指定的第二个函数, 如果有更多个函数, 则依次触发, 直到最后一个。

$(function(){       
    
    
     //带俩个参数的toggle方法
     $("#btn1").toggle(function(){
          $("#btn1").css("color","turquoise");
         //alert("触发toggle函数");
     },function(){
        //alert("触发toggle2函数")
        $("#btn1").css("background-color","deepskyblue");
     })
})

事件冒泡:

在页面上可以有多个事件,也可以多个元素响应同一个事件。

假设网页上有两个元素,其中一个嵌套在另一个元素里,并且都被绑定了 click 事件,同时 body 元素上也绑定了 click事件。

事件会按照 DOM 层次结构像水泡一样不断向上直至顶端

<style type="text/css">
            #body1{
                background-color: deepskyblue;
            }
            #div1{
                background-color: white;
            }
            #span1{
                background-color: yellow;
            }
        </style>
        <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
        <script type="text/javascript">
            $(function(){
                 
                 $("#body1").click(function(){
                     alert("body的click方法");
                 })
                  $("#div1").click(function(){
                     alert("div的click方法");
                 })
                   $("#span1").click(function(){
                     alert("span的click方法");
                    // return false;
                    event.stopPropagation();
                 })

            })
        </script>
    </head>
    <body id="body1">
         body
         <div id="div1">
            div
            <span id="span1">
                span
            </span>
         </div>
    </body>
</html>

阻止默认行为

网页中的元素有自己默认的行为,例如,单击超链接后会跳转、单击提交按钮后表单会提交,有时需要阻止元素的默认行为。

在 jQuery 中,提供了 preventDefault () 方法来阻止元素的默认行为。

实例:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
        <script type="text/javascript">
            $(function(){
                 //阻止点击之后跳转
                 $("#a1").click(function(){
                     alert("你正在阻止a标签的默认行为");
                     //return false;        //方法一
                     event.preventDefault(); //方法二
                 })
                  
                  $(":submit").click(function(){
                    var na=$("#na").val();
                     var uPattern = /^[a-zA-Z0-9_-]{4,16}$/; 
                       if(!uPattern.test(na)){
                            alert("你正在阻止a标签的默认行为");
                            return false;
                       }

                  })

            })
        </script>
    </head>
    <body>
        <a href="http://baidu.com" id="a1">跳转百度</a>
        <form action="http://baidu.com" method="post">
            用户名<input type="text" id="na"/><br/>
            密码<input type="password" id="pa" /><br/>
              <button type="submit">登录</button>

        </form>
    </body>
</html>

事件对象的属性

事件对象: 当触发事件时, 事件对象就被创建了. 在程序中使用事件只需要为函数添加一个参数

event.type : 获取事件的类型

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
        <script type="text/javascript">
            $(function(){
                 
                 $("#a1").click(function(){
                      //alert(event.pageX+","+event.pageY);
                       alert(event.which);
                      return false;
                 })

            })
        </script>
    </head>
    <body>
        <a href="http://baidu.com" id="a1">查看事件对象的属性</a>

    </body>
</html>

移除事件:

在绑定事件的过程中,不仅可以为同一个元素绑定多个事件,也可以为多个元素绑定同一个事件。

<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
        <script type="text/javascript">
            $(function() {
                $("#btn1").one("click", function() {
                    $("#test").append("<p>我的绑定函数1</p>");
                }).one("click", function() {
                    $("#test").append("<p>我的绑定函数2</p>");
                }).one("click", function() {
                    $("#test").append("<p>我的绑定函数3</p>");

                })
            })
        </script>
    </head>

    <body>
        <button id="btn1">绑定函数</button>
        <div id="test">

        </div>
    </body>

</html>

One()方法

one(): 该方法可以为元素绑定处理函数. 当处理函数触发一次后, 立即被删除. 即在每个对象上, 事件处理函数只会被执行一次.

on()与bind()的差别

jQuery从1.7+版本开始,提供了on()和off()进行事件处理函数的绑定和取消。

两者的区别就在于是否支持selector这个参数值。如果使用on的时候,不设置selector,那么on与bind就没有区别了。

jQuery的动画

隐藏和显示元素-show()方法和hide()方法

hide(): 在HTML文档中,为一个元素调用hide()方法会将该元素的display样式改为 none,代码功能同css("display", "none")。

show(): 把元素隐藏后,可以使用show ()方法将元素的 display 样式改为先前的显示状态("block"或"inline"或其他除了"none"之外的值)。

$(function(){
$("div").hover(function(){
    $(this).next().show();
},function(){
    $(this).next().hide();
})
})
</script>

淡入和淡出-fadeIn()方法和fadeout()方法

fadeIn(), fadeOut(): 只改变元素的透明度. fadeOut()会在指定的一段时间内降低元素的不透明度,直到元素完全消失(“display:none”),fadeIn()则相反。

滑上和滑下-slideUp()方法和slideDown()方法

slideDown(),slideUp():只会改变元素的高度,如果一个元素的display属性为 none,当调用slideDown()方法时,这个元素将由上至下延伸显示,slideUp()方法正好相反,元素由下至上缩短隐藏。

自定义动画方法animate()

使用animate()方法来自定义动画,其语法结构为:

animate(params,[speed],[fn])params:一组包含作为动画属性和终值的样式属性和及其值的集合,比如{property1:”value1”, property2:”value2”,..}
speed:三种预定速度之一的字符串("slow","normal", or "fast")或表示动画时长的毫秒数值(如:1000)

fn:在动画完成时执行的函数,每个元素执行一次

toggle()方法

toggle()方法可以切换元素的可见状态。如果元素是可见的, 则切换为隐藏; 如果元素时隐藏的, 则切换为可见的。

toggle()会同时改变元素的高度、宽度和透明度

slideToggle()方法

slideToggle()方法通过高度变化来切换匹配元素的可见性。这个动画效果只调整元素的高度。

fadeTo()方法

fadeTo()方法可以把元素的不透明度以渐近的方式调整到指定的值(0–1之间)。这个动画只调整元素的不透明度,即匹配的元素的高度和宽度不会发生变化。

fadeToggle()方法

fadeToggle()方法通过不透明度变化来切换匹配元素的可见性。这个动画效果只调整元素的不透明度

动画方法说明:

jQuery中的事件、动画、表单的应用方式

属性自定义动画的方法,以上各种动画方法实质内部都调用了animate()方法。此外,直接使用animate()方法还能自定义其他的样式属性,例如:“left”、”marginLeft”,”scrollTop”等

表单应用:

一个表单有3个基本组成部分:

•表单标签:包含处理表单数据所用的服务器程序URL以及数据提交到服务器的方法。

•表单域:包含文本框、密码框、多行文本框、复选框、单选框、下拉选择框和文件上传框等。

•表单按钮:包括提交按钮、复位按钮和一般按钮,用于将数据传送到服务器上或者取消传送,还可以用来控制其他定义了处理脚本的处理工作。

attr()和prop()方法区别:

attr的返回值要么是checked要么是undefined,prop的返回值只有true和false。

prop()**函数的结果**:

  1.如果有相应的属性,返回指定属性值。

  2.如果没有相应的属性,返回值是空字符串。

attr**()函数的结果:**

  1.如果有相应的属性,返回指定属性值。

  2.如果没有相应的属性,返回值是undefined。

对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。

对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。

具有 true 和 false 两个属性的属性,如 checked, selected 或者 disabled 使用prop()

“jQuery中的事件、动画、表单的应用方式”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯