jQuery事件

8 篇文章 0 订阅
6 篇文章 0 订阅

jQuery事件注册

element.事件(function(){})
$(“div”).click(function(){事件处理程序})

1.2事件处理 on

on()方法在匹配元素上绑定一个或多个事件的事件处理函数

  • element.on(events,[selector],fn)
  • events:一个或多个用空格分隔的事件类型
  • selector:元素的子元素选择器
  • fn:回调函数 即绑定在元素身上的监听函数

<script>
	//(1)事件处理 on
	$("div").on({
		mouseenter:function(){
			$(this).css("background","skyblue")
		},
		click:function(){
			$(this).css("background","purple")
		}	
	})
	$("div").on("mousenter mouseleave",function(){
		$(this).toggleClass("current");	
	});
	(2)on可以实现事件委托   click是绑定在ul身上,但是是li触发
	$("ul").on("click","li",function(){	
			
	})
	(3)on可以给未来动态创建的元素绑定事件
	$("ol").on("click","li",function(){
		alert(11);
	})
	var li = $("<li></li>");
	$("ol").append(li);
</script>

1.3微博发布案例

点击发布按钮,动态创建小li,放入文本框的内容和删除按钮,并且添加到ul中 点击删除按钮,可以删除当前微博留言

<div class="box" id="weibo">
	<span>微博发布</span>
	<textarea name="" class="txt" cols="30" rows="10"></textarea>
	<button class = "btn"></button>
	<ul></ul>
</div>
<script>
	$(function(){	
		//1.点击发布那妞,动态创建一个小li,放入文本框的内容和删除按钮,并且添加到ul中
		$(".btn").on("click",function(){	
			var li = $("<li></li>");
			li.html($(".txt").val() +"<a href='javascript:;'>删除</a>");
			$("ul").prepend(li);
			li.slideDown();
			$(".txt").val("");
		})	
		//2.点击删除按钮,可以删除当前的微博留言li
		$("ul").on("click","a",function(){	
			$("this").parent().slideUp(function(){
				$(this).remove(); 
			});
		})
	})
</script>

1.4事件处理off()解绑事件

<script>
	//1.off   事件解绑
	$("div").off();  //解除元素所有事件处理程序
	$("div").off("click");  //解绑元素上面点击事件 
	$("ul").off("click","li") ; //解绑事件委托
</script>

如果想要事件只触发一次,可以用one()
$(“p”).one(“click”,function(){ alert(11); })

1.5自动触发事件 trigger()

有些事件希望自动触发,比如轮播图自动播放功能跟点击右侧按钮一致,可以利用定时器自动触发右侧按钮点击事件,不必鼠标点击触发

<div></div>
<input type= "text">
<script>
//1.元素.事件()
$("div").trigger("focus");
//2.元素,trigger("clck");
$("div").trigger("focus");
//3.元素.triggerHandler("事件") 不会触发元素的默认行为
$("div").triggerHandler("click");
$("input").on("focus",function(){
	$(this).val("你好吗");
})
</script>

阻止默认行为:event.preventDefault() 或者return false
阻止冒泡:event.stopPropagation()

<div></div>
<script>
	$(function(){
		$(document).on("click",function(){	
			console.log("点击了document");	
		})	
		$("div").on("click",function(event){
			console.log("点击了div");
			event.stopPropagation();
		
		})
	})
</script>

jQuery其他方法

jQuery对象拷贝

$.extend([deep],target,object,[objectN])
deep:如果设为true为深拷贝 ,默认为false浅拷贝
target:要拷贝的目标对象
object:待拷贝到第一个对象的对象

<script>
	$(function(){
		var targetObj = {};
		var obj ={
			id:1,
			name:"andy"	
		};	
		$.extend(targetObj,obj);
		console.log(targetObj);
		//原来对象有数据
		var targetObj = {
			id:0,
			
		};
		var obj ={
			id:1,
			name:"andy"	
		};	
		$.extend(targetObj,obj);
		console.log(targetObj);  //会覆盖原来的数据
		//
		var targetObj = {
			id:0,
			
		};
		var obj ={
			id:1,
			name:"andy"	
			msg:{	
				age:18
			}
		};	
		$.extend(targetObj,obj);
		console.log(targetObj);  //会覆盖原来的数据
		//1.浅拷贝 把原来复杂数据类型的地址拷贝给目标对象  修改目标对象会影响原对象
		targetObj.msg.age = 20;
		conssole.log(targetObj);	//20
		conssole.log(obj);    //20
		//2.深拷贝  完全拷贝(拷贝的是对象,而不是地址),修改目标对象不会影响原对象   两个对象指向不同的空间地址
		var targetObj = {
			id:0,
			msg:{
				sex:"男"
			}
		};
		var obj ={
			id:1,
			name:"andy"	
			msg:{	
				age:18
			}
		};	
		$.extend(true,targetObj,obj);
		console.log(targetObj); //新开辟一个空间内存存储新对象msg:{sex:"男",age:18}
		console.log(obj);
		
	})

</script>

浅拷贝把原来对象里面的复杂数据类型中的地址拷贝个目标对象
浅拷贝 当修改目标对象的值时,原对象会受到影响
深拷贝 是把数据完全复制一份给目标对象 如果里面有不冲突的属性,会合并到一起
深拷贝 如果修改目标对象的值,对原对象没有影响,因为他们指向不同的地址

jQuery多可共存

jQuery使用 作 为 标 识 符 , 随 着 j Q u e r y 的 流 行 , 其 他 j s 库 也 会 用 这 作为标识符,随着jQuery的流行,其他js库也会用这 jQueryjs作为标识符,这样会引起冲突

<script>
	$(function(){
		function $(ele){
			return document.querySelector(ele);
		}
		console.log($("div"));
		//$.each()
		//jQuery.each();
		//如果$符号冲突  我们就使用jQuery
		jQuery.each();
		//jQuery  释放对$ 控制权让用户自己决定
		var suibian = jQuery.noConflict();
		console.log(suibian("span"));
	})	
</script>

jQuery插件

jQuery功能比较有限,想要更复杂的特效效果,可以借助jQuery插件完成
注意:这些插件也是依赖于jQuery来完成的,所以必须要引入jQuery文件,因此也称为jQuery插件
jQuery插件库
jQuery之家
2.jQuery插件使用步骤
引入相关文件(jQuery文件和插件文件)
复制相关html,css,js(调用插件)
1.瀑布流
2.图片懒加载(图片使用延迟加载可以提高网页下载速度,它能够帮助减轻服务器负载);当我们页面滑动到可视区域,再显示图片
3.全屏滚动(fullpage.js)
gitHub
中文翻译网站:http://www.dowebok.com/demo/2014/77/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值