• jQuery事件


    事件在元素对象与功能代码中起着非常重要的作用

    严格来说,事件在触发之后分为两个阶段,第一是捕获阶段,然后是冒泡阶段,但是遗憾的是,很多浏览器都不支持捕获事件,因此直接执行冒泡事件,所谓的冒泡就是事件执行中的顺序

    可以通过stopPropagation()方法阻止冒泡事件

    页面载入事件

    jQuery中的页面载入事件ready()类似于JavaScript中的OnLoad()方法,只是在事件执行时间上有区别。OnLoad()方法必须是页面中的全部元素完全加载到浏览器后才触发,在这种情况下,如果页面中的元素过多或者过大,那么要等到OnLoad()方法执行完毕后,用户才能进行操作。如果使用jQuery中的ready()方法加载页面,则只要页面的DOM模型加载完毕,就会触发ready方法。

    ready方法的工作原理:

    在jQuery加载页面时,会设置一个isReday的标记,用于监听页面的加载的进度。当然遇到执行ready方法时通过查看isReady值是否被设置,如果未被设置,那么说明页面没有被完全加载,在此情况下,将未完成加载的部分用一个数组缓存起来,当全部加载完成后,再将未完成的部分通过缓存一一执行。

    ready方法的写法

    <script type="text/javascript">
    	//写法一
    	$(function() {
    		//代码部分
    	});
    	//写法二
    	$(document).ready(function() {
    		//代码部分
    	});
    	//写法三
    	jQuery(document).ready(function() {
    		//代码部分
    	});
    	//写法四
    	jQuery(function() {
    		//代码部分
    	});
    </script>
    

    绑定事件

    绑定按钮的单机事件

    <script type="text/javascript">
    	//写法一
    	$(function() {
    		$("input").click(function(){
    			alert("绑定按钮的单击事件");
    		});
    	});		
    </script>
    <div class="wrapper">
    	<input type="button" value="点击开始" />
    </div>
    

    在jQuery中还可以使用bind()方法进行事件的绑定

    bind()功能是为每个选择元素的事件绑定处理函数。语法:bind(type,[data],fn);

    其中type为一个或多个类型的字符串,如"click",也可以自定义类型,也可以是被参数type调用的类型,

    data参数是作为event.data属性值传递给事件对象的额外数据对象。

    通过bind方法绑定事件

    <script type="text/javascript">
    			$(function() {
    				$("input").bind("click",function(){
    					alert("bind");
    				});
    			});
    			
    		</script>
    		<div class="wrapper">
    			<input type="button" value="点击开始" />
    		</div>
    

    切换事件

    在jQuery中有两个方法可以用来切换事件,分别是hover()和toggle(),所谓切换事件,就是两个以上的事件绑定一个元素,在元素的行为动作间进行切换,

    hover方法是在鼠标悬停和鼠标移出的事件进行切换

    该方法所实现的功能,也可以通过jQuery事件mouseseenter和mouseleave实现

    hover方法语法:hover(over,out);

    两个参数over和out,分别是鼠标悬停和鼠标移出的事件代码段

    用hover方法,实现鼠标经过文字变红色,鼠标移出文字变蓝色的功能

    <script type="text/javascript">
    	$(function() {
    		$("p").hover(function(){
    			$(this).css('color','red');
    		},function(){
    			$(this).css('color','blue');
    		});
    	});
    			
    </script>
    <div class="wrapper">
    	<p>hover方法</p>
    </div>
    

    toggle方法

    该方法可以依次调用N个指定函数,知道最后一个函数,然后重复对这些函数轮番调用,每次单机后依次调用函数。语法如是:toggle(fn1,fn2...);

    用toggle方法,实现鼠标单击文字,依次改变文字的颜色

    <script type="text/javascript">
    	$(function() {
    		$("p").toggle(function() {
    			$("p").css("color", "green");
    		}, function() {
    			$("p").css("color", "red");
    		}, function() {
    			$("p").css("color", "yellow");
    		});
    	});
    </script>
    <div class="wrapper">
    	<p>
    		hover方法
    	</p>
    </div>
    

    移除事件

    在DOM对象的操作中,有绑定事件,当然也有解除绑定,在jQuery中,提供unbind()方法移除绑定事件,语法:unbind([type],[fn]);其中type为移除的事件类型,fn为需要移除的事件出来函数,如果该方法没有参数,则移除所有的绑定事件。

    点击按钮,移除p元素的绑定事件

    <script type="text/javascript">
    	$(function() {
    		$("p").click(function(){
    			alert("绑定点击");
    		});
    		$("input").click(function(){
    			$("p").unbind("click");
    		});
    	});
    </script>
    <div class="wrapper">
    	<p>
    		hover方法
    	</p>
    	<input type="button" value="移除绑定" />
    </div>
    

    其他事件

    one();

    该方法是为所选元素绑定一个仅触发一次的处理函数,语法:one(type,[data],fn);

    其中type为事件的类型,既要触发的事件类型。data参数是作为event.data属性值传递给事件对象的额外数据对象。fn为绑定事件是所要触发的函数。

    使用one方法为按钮绑定一个click事件,点击按钮时弹出p元素的文本内容,再次点击按钮,不再弹出

    <script type="text/javascript">
    	$(function() {
    		$("input").one("click",function(){
    			alert($("p").text());
    		});
    	});
    </script>
    <div class="wrapper">
    	<p>
    		hover方法
    	</p>
    	<input type="button" value="one" />
    </div>
    

    trigger()方法

    在DOM页面中,有时候需要在页面加载完成后自动执行以下人性化的操作,比如文本框处于选中的状态,某个按钮处于焦点中。jQuery提供trigger方法,可以很简单的实现这个功能。
    该方法在所选元素上触发指定事件。语法:trigger(type,[data]);type为触发事件的类型,data为可选参数,表示在触发事件时传递给函数的附加参数。

    使用trigger方法,实现文本框在页面加载完毕处于选中状态

    <script type="text/javascript">
    	$(function() {
    		$("input").trigger("select");
    	});
    </script>
    
    <div class="wrapper">
    	<input type="text" />
    </div>
  • 相关阅读:
    【leetcode】328 Odd Even Linked List
    【leetcode】86 partition list
    【leetcode】92 Reverse Linked List II
    【leetcode】220 ContainsDuplicate3
    【leetcode】219 Contains Duplicate2
    【leetcode】149 Max Points on a Line
    Java实现验证码图片
    求解两点(经纬度坐标)的距离
    POI开源项目-PPT2PNG转换测试
    编程内功修炼之设计模式—责任链模式
  • 原文地址:https://www.cnblogs.com/xinxinjs/p/4730112.html
Copyright © 2020-2023  润新知