jquery.tag使用文档

author:zhujie

<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="jquery.tag.js"></script>
<link rel="stylesheet" href="jquery.tag.css" type="text/css">

1、简单用法

html:
<div id="testtag1" tagname="test1"></div>
当页面中有多个tag container时,可以指定tagname进行区分
js:
$(document).ready(function(){
	$("#testtag1").tagsInit();
});
效果

2、配置参数

名称 类型 默认值 描述
input boolean true 是否创建标签input(在input上回车生成标签)
inputNote string 显示在input上面的提示(例如'输入后请回车'),只有input参数为true时才有效
beforeInput function null input回车添加标签之前执行的函数,函数形式为:function beforeInput(tagValue){...} 第一个参数是要添加的标签文字。当函数返回false的时候,表示拒绝添加此标签。
afterInput function null input回车添加标签成功后执行的函数,函数形式为:function afterInput(tagValue){...} 第一个参数是要添加的标签文字
del boolean true 是否可以删除标签
onDel function null 删除标签之前执行的函数,函数形式为:function onDel(tagValue,tagId){...} 第一个参数是要删除的标签文字,第二个参数是要删除的标签id 当函数返回false的时候,表示拒绝删除此标签。
repeat boolean OR string true 添加标签时候是否检测重复,false表示不检查,true和空字符串表示检查但不弹出对话框提示,非空字符串为检查且表示提示的内容
onRepeat function null 添加标签时候检测到重复标签时触发的函数,函数形式为function onRepeat(tagValue,tagId){}
max number 0 此标签容器所能容纳的最大标签数目,0为不受限制
action boolean OR object OR function false 每个标签的点击动作。false:点击没反映。object{href:链接(%v%表示tagValue,%id%表示tagId),target:...}:打开链接。function:点击时执行此函数,函数参数为tagValue,tagId
theme string blue css模版主题

3、高级用法

3.1、添加之前进行判断,符合条件再添加

html:
<div id="testtag2" tagname="test2"></div>
js:
$(document).ready(function(){
	$("#testtag2").tagsInit({
		inputNote:"输入后回车",
		del:false,
		beforeInput:function(tagValue){
			if(tagValue=='aaa'){
				alert("不允许输入aaa");
				return false;
			}
		}
	});
});
效果

3.2、给每个标签上加链接或者js函数

html:
<div id="testtag3" tagname="test3"></div> <div id="testtag4" tagname="test4"></div>
js:
$(document).ready(function(){
	$("#testtag3").tagsInit({
		repeat:'此标签列表中已经存在啦',
		action:{href:'http://www.baidu.com/s?wd=%v%',target:'_blank'}
	});
	$("#testtag4").tagsInit({
		onDel:function(){alert("不允许删除");return false;},
		action:function(tagValue){alert(tagValue);},
		theme:'black'
	});
});
效果

3.3、添加标签的时候与后台交互

html:
<div id="testtag5" tagname="test5"></div>
js:
$(document).ready(function(){
	var tag=$("#testtag5").tagsInit({
		beforeInput:function(tagValue){
			$.post('http://www.baidu.com/s',{wd:tagValue},function(result){
				alert(result);
				tag.tagsAdd(tagValue);
			});
			return false;
		}
	});
});
效果

4、其他函数

4.1、tagsAdd

通过此函数可以手动向标签容器添加标签
函数形式:tagsAdd=function(tagValue,tagId){...}

4.2、tagsDel

通过此函数可以手动在标签容器中删除标签
函数形式:tagsDel=function(tagValue,tagId){...}

4.3、tagsClear

通过此函数可以清空标签容器中的标签
函数形式:tagsClear=function(){...}

4.4、tagsCount

通过此函数可以获取标签容器中标签的个数
函数形式:tagsCount=function(){...}

4.5、tagsIndexof

通过此函数可以获取某标签在标签容器中的位置
函数形式:tagsIndexof=function(tagValue,tagId){...}。如果tagValue不为空,按照tagValue查找,否则按照tagId进行查找

4.6、tagsStr

通过此函数可以将所有标签转换为字符串(通过split相隔)
函数形式:tagsStr=function(split){...}

4.7、tagsJson

通过此函数可以将所有标签转换为json字符串
函数形式:tagsJson=function(){...}

4.8、示例

html
<div>
	<input type="button" onclick="mytagsAdd()" value="tagsAdd"/>
	<input type="button" onclick="mytagsDel()" value="tagsDel"/>
	<input type="button" onclick="mytagsClear()" value="tagsClear"/>
	<input type="button" onclick="mytagsCount()" value="tagsCount"/>
	<input type="button" onclick="mytagsIndexof()" value="tagsIndexof"/>
	<input type="button" onclick="mytagsStr()" value="tagsStr"/>
	<input type="button" onclick="mytagsJson()" value="tagsJson"/>
</div>
<div id="testtag6" tagname="test6"></div>
js
var tag6=$("#testtag6").tagsInit();
function mytagsAdd(){
	tag6.tagsAdd(prompt("输入添加内容"));
}
function mytagsDel(){
	tag6.tagsDel(prompt("输入删除内容"));
}
function mytagsClear(){
	tag6.tagsClear();
}
function mytagsCount(){
	alert(tag6.tagsCount());
}
function mytagsIndexof(){
	alert(tag6.tagsIndexof(prompt("输入查找内容")));
}
function mytagsStr(){
	alert(tag6.tagsStr());
}
function mytagsJson(){
	alert(tag6.tagsJson());
}
效果