`

使用jQuery tag handler开发一个带有标签功能的文章发布系统

阅读更多

日期:2012-5-14  来源:GBin1.com

使用jQuery tag handler开发一个带有标签功能的文章发布系统

在线演示1   在线演示2   本地下载

网站和web开发中我们常常需要处理类似标签添加功能的模块,以前我们也介绍过相关的jQuery插件 - textext ,可以方便的添加标签增减和自动补齐相关功能。今天这里我们将使用另外一个非常轻量级的jQuery插件来实现漂亮的标签处理功能,这里我们将使用以前的超酷留言板系统 为基础来实现一个完整功能的留言发布系统,希望大家喜欢!

主要使用插件

注意:jQuery UI的autocomplete在Firefox下处理中文自动补齐功能有个bug,你需要自己解决,解决方法如下:

找到jQueryUI中的如下代码:

            .bind( "blur.autocomplete", function( event ) {
                if ( self.options.disabled ) {
                    return;
                }

                clearTimeout( self.searching );
                // clicks on the menu (or a button to trigger a search) will cause a blur event
                self.closing = setTimeout(function() {
                    self.close( event );
                    self._change( event );
                }, 150 );
            });

修改为:

            .bind( "blur.autocomplete", function( event ) {
                if ( self.options.disabled ) {
                    return;
                }

                clearTimeout( self.searching );
                // clicks on the menu (or a button to trigger a search) will cause a blur event
                self.closing = setTimeout(function() {
                    self.close( event );
                    self._change( event );
                }, 150 );
            }).bind("input.autocomplete", function() {
                // 修复在Firefox中不支持中文的BUG
                self.search(self.item);
            }); 

如果你直接下载本文演示,已经修改此Bug。

在本文中,我们修改了jQuery tag handler的一些逻辑,缺省使用这个插件,如果你尝试输入重复的标签内容,你会发现无法输入,在我们例子中,如果你尝试输入重复标签,会发现,已存在的标签会闪烁提示你。

HTML代码

html代码非常简单,只需要指定需要生成标签的容器,如下:

<div  id="living-effect" class="tag-wrapper">
	<ul id="tags"></ul>
</div>				       

这里我们使用id='tags'来指定标签生成容器。

Javascript代码

$(function(){
	$('#tags').tagHandler({
		assignedTags: [ 'GBin1'],
		availableTags: [ 'HTML', 'CSS', 'Javascript', 'Dojo', 'Mootools', 'jQuery', 'jQuery插件', 'SEO', '素材', '图标' ],
		autocomplete: true,
		onAdd: function(tag){
			var addflag = true,tags = $('#tags').tagHandler("getTags");
			jQuery.each(tags, function (i, e) {
				if(tag.toUpperCase()===e.toUpperCase()){
					$('#tags').find('.tagItem').each(function(){
						if($(this).html().toLocaleUpperCase()===tag.toLocaleUpperCase()){
							$(this).animate({opacity: 0.55}).delay(20).animate({opacity: 1}).animate({opacity: 0.55}).delay(20).animate({opacity: 1});
						}
					});
					//$('#log').hide(0).html("标签已存在").show().delay(2000).fadeOut();
					addflag = false;
				}
			});
			return addflag;
		}
	});
});

以上代码定义了标签相关属性及其callback方法,这里我们再添加新标签的callback方法里判断是否重复,如果有重复则生成闪烁效果。

我们设定autocomplete为true,则插件会调用jQueryUI的自动补齐autocomplete方法,帮助用户输入标签。

assignTags设定了缺省显示的标签,avaiableTags设置了所有有效的标签。 这个插件包含其其它的选项和callback方法,具体请参考插件的ReadMe。

是不是很简单,希望大家喜欢这个演示。

来源:使用jQuery tag handler开发一个带有标签功能的文章发布系统

分享到:
评论

相关推荐

    jquery+Ajax+Handler

    【jQuery + Ajax + Handler】是Web开发中的一个经典组合,用于构建动态、交互性强的网页应用。这个模板提供了一个基于HTML的权限管理系统,无需依赖微软的特定控件,完全使用前端JavaScript库jQuery和后端处理程序...

    Tag-Handler:Tag Handler是用于管理标签类型元数据的jQuery插件。

    标签处理程序必须附加到一个或多个 HTML中的标签。 要添加标签,请单击标签框,输入名称,然后按Enter或逗号。 可以通过点击框内的退格键或单击标签来从标签框中删除标签。 标签列表可以用以下3种方式之一进行...

    一个activity中多个handler和消息的处理过程

    当一个Activity中有多个Handler时,每个Handler都会有自己的Message队列和Looper。Looper是消息循环器,它负责不断地从Message队列中取出Message并交给对应的Handler进行处理。默认情况下,只有一个Looper与主线程...

    jquery.easydrag.handler.beta2.js

    ,而且这个插件只能用id号给元素绑定触发拖动的属性,如果一个id一个id的绑定事件的话会造成代码冗余 。所以我们要修改一下源文件jquery.easydrag.handler.beta2.js:找到 function(handlerId) 这个函数, 将里面的...

    使用handler 实现预约时间功能

    在Android开发中,`Handler`类是一个至关重要的组件,它主要用于在不同的线程间通信,尤其是在处理异步任务和定时操作时。标题“使用Handler实现预约时间功能”指的是利用Handler来实现在特定时间执行预定任务的功能...

    Handler使用

    在Android开发中,`Handler`是一个至关重要的组件,主要用于解决线程间的通信问题,尤其是在UI线程和其他工作线程之间。本篇文章将深入探讨`Handler`的使用方法,包括其基本概念、工作原理以及如何避免内存泄露和...

    jqueryAPI jquery使用文档

    jQuery 的另一个特性是链式操作,可以在一个选择器之后连续调用多个方法,如: ```javascript $("#element").css("color", "red").slideUp(500).fadeIn(1000); ``` 七、插件系统(Plugins) jQuery 社区有大量的...

    基于jQuery和Handler的在线技术进行图片处理 图片缩小 图片剪切 图片在线裁剪源码

    总的来说,这个源码项目提供了一个全面的图片处理解决方案,结合了前端的jQuery和后端的Handler技术,使得开发者能够创建出具有动态图片处理功能的网页应用。这种技术不仅可以应用于在线编辑器、社交媒体平台,也...

    安卓handler的使用

    在Android系统中,每个线程都有一个Looper,它是消息队列的管理者,负责取出Message并分发给相应的Handler进行处理。 主线程(UI线程)默认已经启用了Looper,因此可以直接创建Handler。创建Handler时通常需要重写`...

    Android中handler的使用

    Handler的主要功能是发送和处理消息,它与Looper和Message紧密协作,构建了一个消息循环系统。在Android中,主线程(UI线程)默认有一个Looper对象,负责不断检查是否有待处理的消息。当Handler发送一个Message到...

    tabHost的简单使用以及registerReceiver和Handler的使用

    在Android开发中,`TabHost` 是一个非常重要的组件,用于创建带有标签页的应用界面。它允许我们在一个Activity中组织多个Fragment或者Activity,为用户提供不同的功能区域。`TabHost`通常与`TabWidget`(显示标签)...

    jquery库+开发文档

    jQuery是一个强大的JavaScript库,它极大地简化了JavaScript编程,使得网页动态化和DOM操作变得更加简单。jQuery的核心功能包括选择器、DOM操作、事件处理、动画效果以及Ajax交互等。通过使用jQuery,开发者可以避免...

    pager-taglib 分页标签使用

    标签库是一个包含一系列标签的资源包,这些标签可以在JSP页面中使用,以执行特定的功能,如分页。`&lt;pager:page&gt;`是分页标签库中的主要标签,用于渲染分页链接。 二、使用步骤 1. 引入依赖:首先,在项目的`WEB-INF/...

    自定义标签小练习----一个简单的分页标签

    在Java Web开发中,自定义标签(Custom Tags)是一种扩展JSP功能的有效方式,它可以将复杂的业务逻辑封装起来,使得视图层代码更加简洁、易读。本篇内容主要介绍了一个简单的分页标签的实现过程,这是一个很好的学习...

    Fragment与Activity使用Handler进行交互

    在这种情况下,Handler机制可以作为一个有效的工具来实现线程间的通信。本文将深入探讨如何在Fragment和Activity之间使用Handler进行交互。 首先,了解Handler的基本概念。Handler是Android中的一个消息处理类,它...

    Handler的介绍和使用方法

    在Android开发中,`Handler`是一个至关重要的组件,主要用于处理线程间的通信,尤其是主线程(UI线程)与工作线程之间的交互。本篇将详细介绍`Handler`的原理、使用方法及其在实际开发中的应用。 `Handler`是...

    jquery开发api文档3.2.1

    《jQuery开发API文档3.2.1》是一个中文版的jQuery参考手册,为开发者提供了全面、详尽的jQuery函数及方法介绍。这个版本是许多开发者在实践中发现非常实用的资源,便于理解和应用jQuery库。 jQuery是一款强大的...

    Handler的简单使用

    本篇文章将详细介绍`Handler`的基本概念、工作原理以及如何在一个`Activity`中简单使用它来实现动画效果。 `Handler`的核心功能是发送和处理消息。在Android系统中,主线程负责处理用户交互,如显示界面、更新UI等...

    android中Handler的使用方法和总结

    Android 中 Handler 的使用方法和总结 Handler 是 Android 中的一种非常重要的组件,它起到了...因此,在 Android 应用程序的开发中,Handler 是一个非常重要的组件,需要充分利用它来提高应用程序的性能和用户体验。

    Handler与AsyncTask使用示例

    `Looper`是Android消息系统的另一个核心组件,它在一个线程中运行一个无限循环,不断地从消息队列中取出消息并分发给相应的`Handler`进行处理。默认情况下,Android主线程(UI线程)已经有一个`Looper`在运行,而在...

Global site tag (gtag.js) - Google Analytics