博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用jQuery tag handler开发一个带有标签功能的文章发布系统
阅读量:6414 次
发布时间:2019-06-23

本文共 2737 字,大约阅读时间需要 9 分钟。

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

   

网站和web开发中我们常常需要处理类似标签添加功能的模块,以前我们也介绍过相关的jQuery插件 - ,可以方便的添加标签增减和自动补齐相关功能。今天这里我们将使用另外一个非常轻量级的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代码非常简单,只需要指定需要生成标签的容器,如下:

          

    这里我们使用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。

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

    转载地址:http://bqbra.baihongyu.com/

    你可能感兴趣的文章
    mysql中show processlist过滤和杀死线程
    查看>>
    最新Sublime Text 2 激活 汉化
    查看>>
    基础数据类型之字典
    查看>>
    第七次作业
    查看>>
    Oracle中NVARCHAR2与VARCHAR2的区别
    查看>>
    php debug
    查看>>
    Ubuntu构建LVS+Keepalived高可用负载均衡集群【生产环境部署】
    查看>>
    lvm实现快速备份文件及数据库,lvm快照原理
    查看>>
    设计模式之Factory Method(工厂方法)
    查看>>
    10K入职linux运维岗位小伙伴感谢信及面试经历分享
    查看>>
    zookeeper入门之Curator的使用之几种监听器的使用
    查看>>
    [转]Reporting Service部署之访问权限
    查看>>
    innerxml and outerxml
    查看>>
    validform校验框架不显示错误提示
    查看>>
    flink 获取上传的Jar源码
    查看>>
    Spring Data JPA Batch Insertion
    查看>>
    UEditor自动调节宽度
    查看>>
    JAVA做验证码图片(转自CSDN)
    查看>>
    Delphi TServerSocket,TClientSocket实现传送文件代码
    查看>>
    JS无聊之作
    查看>>