Jquery——Day5(插件—案例:制作导航插件)

20 篇文章 2 订阅
7 篇文章 0 订阅

1、插件描述

插件的种类,主要大致可以分为:UI类、表单及验证类、输入类、特效类、Ajax类、滑动类、图形图像类、导航类、综合工具类、动画类。

引入插件需要一定的步骤,如下:

(1)必须引入jquery.js文件,而且在所有插件之前引入;

(2)引入插件;

(3)引入插件的周边,比如皮肤、中文包等。

<script src="jquery.js"></script>
<script src="jquery.validate.js"></script>
<script src="jquery.validate.message_zh.js"></script>

<form action="index.html">
	<p>用户名:<input type="text" class="required" minlength="2" name="user" />(*)</p>
	<p>电子邮件:<input type="text" class="required email "  name="email" />(*)</p>
	<p>用户名:<input type="text" class="url"  name="url" /></p>
	<input type="submit" value="提交" /> 
</form>

注意:由于在validate.js中会显示出三国语言,即加载“validate.message_zh.js”,可以自动将其转换为中文格式。


2、自动完成插件

所谓自动完成,就是当用户输入部分字符的时候,智能的搜索出包含字符的全部内容。

$(function(){
	$('form').validate();
	var user=['about','white','red'];
	$('form input[name=user]').autocomplete(user,{
		minChars();
	});
});


3、自定义插件
按照功能分类,插件的形式可以分为以下三类:
(1)封装对象方法的插件(基于某个DOM元素的jQuery对象,局部性);
(2)封装全局函数的插件(全局性的封装);
(3)选择器插件(类似于find())。
若要制作导航插件,首先需要明白以下几个基本的要点:
(1)插件名需要使用jQuery.[插件名].js,以免和其他的js文件或者其他库冲突;
(2)局部对象附加jquery.fn对象,全局函数附加在jQuery上;
(3)插件内部,this指向是当前的局部对象;
(4)可以通过this.each遍历所有的元素;
(5)所有的方法或插件,必须用分号结尾,避免出现问题;
(6)插件返回的是jQuery对象,以保证链式连缀;

(7)避免插件内部使用$,如果使用,请传递jQuery进去。


在HTML中,新建一个nav.html
<ul class="list">
<li>导航列表
	<ul class="nav">
		<li>导航列表</li>
		<li>导航列表</li>
		<li>导航列表</li>
	</ul>
</li>
<li>导航列表
	<ul class="nav">
		<li>导航列表</li>
		<li>导航列表</li>
		<li>导航列表</li>
	</ul>
</li>
<li>导航列表
	<ul class="nav">
		<li>导航列表</li>
		<li>导航列表</li>
		<li>导航列表</li>
	</ul>
</li>
</ul>


设置其样式,nav.css
.list{
	list-style:none;
	margin:0;padding:0;
	font-size:13px;
	color:#fff;
	width:500px;
	margin:500px auto;
}


.list li{
	float:left;
	width:100px;
	height:30px;
	line-height:30px;
	text-align:center;
	background:#333;
	cursor:pointer;
}


同时,设置nav.js
$(function(){
	$('.nav').css({
		'list-style':'none',
		'margin':0,
		'padding':0,
		'display':none
	});


	$('.nav').parent().hover(function(){
		$(this).find('.nav').slideDown(normal);
	},function(){
		$(this).find('.nav').stop().slideUp(normal);
	});


});


将上述nav.js代码转换为插件jquery.nav.js
;(function($){
	$.extend({
      		 'nav':function(){
			$(this).find('nav').css({
				'list-style':'none',
				'margin':0,
				'padding':0,
				'display':none
			});


			$(this).find('nav').parent().hover(function(){
				$(this).find('.nav').slideDown(normal);
			},function(){
				$(this).find('.nav').stop().slideUp(normal);
			});
		}
	});
})(jQuery);




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值