jQuery实现点击文本框弹出热门标签的提示效果


Posted in Javascript onNovember 17, 2013
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title>jQuery实现点击文本框弹出热门标签的提示示例_网页代码站</title> 
<style type="text/css"> 
body { 
font-size:12px;font-family:Arial; 
} 
#m_tagsItem { 
background:#fff; 
position:absolute; 
top:0px; 
left:0px; 
overflow:hidden; 
width:590px; 
*width:561px; 
width:561px\9; 
padding:10px; 
border:1px solid #ccc; 
z-index:1000; 
display:none; 
} 
#m_tagsItem p { 
text-align:left; 
line-height:22px; 
padding:2px 0; 
margin:0; 
border:0; 
} 
#m_tagsItem span { 
font-weight:bold; 
} 
#m_tagsItem a { 
margin:0 5px; 
} 
.m_tagsname { 
color:#999; 
vertical-align:middle; 
font-size:12px; 
text-indent:3px; 
line-height:20px; 
} 
#tagClose { 
font-size:12px; 
color:#888; 
cursor:pointer; 
position:absolute; 
top:2px; 
right:2px; 
} 
</style> 
<script src="http://www.webdm.cn/themes/script/jquery.js"></script> 
<script language="javascript"> 
(function ($) { 
$.fn.bgIframe = $.fn.bgiframe = function (s) { 
if ($.browser.msie && /6.0/.test(navigator.userAgent)) { 
s = $.extend({ 
top: 'auto', // auto == .currentStyle.borderTopWidth 
left: 'auto', // auto == .currentStyle.borderLeftWidth 
width: 'auto', // auto == offsetWidth 
height: 'auto', // auto == offsetHeight 
opacity: true, 
src: 'javascript:false;' 
}, s || {}); 
var prop = function (n) { return n && n.constructor == Number ? n + 'px' : n; }, 
html = '<iframe class="bgiframe"frameborder="0"tabindex="-1"src="' + s.src + '"' + 
'style="display:block;position:absolute;z-index:-1;' + 
(s.opacity !== false ? 'filter:Alpha(Opacity=\'0\');' : '') + 
'top:' + (s.top == 'auto' ? 'expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+\'px\')' : prop(s.top)) + ';' + 
'left:' + (s.left == 'auto' ? 'expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+\'px\')' : prop(s.left)) + ';' + 
'width:' + (s.width == 'auto' ? 'expression(this.parentNode.offsetWidth+\'px\')' : prop(s.width)) + ';' + 
'height:' + (s.height == 'auto' ? 'expression(this.parentNode.offsetHeight+\'px\')' : prop(s.height)) + ';' + 
'"/>'; 
return this.each(function () { 
if ($('> iframe.bgiframe', this).length == 0) 
this.insertBefore(document.createElement(html), this.firstChild); 
}); 
} 
return this; 
}; 
})(jQuery); 
jQuery.fn.selectCity = function (targetId) { 
var _seft = this; 
var targetId = $(targetId); 
this.click(function () { 
var A_top = $(this).offset().top + $(this).outerHeight(true); // 1 
var A_left = $(this).offset().left; 
targetId.bgiframe(); 
targetId.show().css({ "position": "absolute", "top": A_top + "px", "left": A_left + "px" }); 
}); 
targetId.find("#tagClose").click(function () { 
targetId.hide(); 
}); 
$(document).click(function (event) { 
if (event.target.id != _seft.selector.substring(1)) { 
targetId.hide(); 
} 
}); 
targetId.click(function (e) { 
e.stopPropagation(); // 2 
}); 
return this; 
} 
$(function () { 
$("#selecttags").selectCity("#m_tagsItem"); 
}); 
//为文本域连续赋值 
function checktag(o) { 
var tagid = function (id) { return document.getElementById(id); } 
var tags = []; //存放标签,避免重复加入 
var tagidSPLITCHAR = ' '; //设定分隔符,根据程序需求可改 
var d = tagid('selecttags'); 
if (d.value) 
tags = d.value.split(tagidSPLITCHAR); 
var v = o.innerHTML; //如果tag有别的值或者别的非innerHTML里体现的内容 
var s = tagidSPLITCHAR + tags.join(tagidSPLITCHAR) + tagidSPLITCHAR 
if (!new RegExp(tagidSPLITCHAR + v + tagidSPLITCHAR, 'g').test(s)) { 
s += v; 
} 
s = s.replace(new RegExp("(^" + tagidSPLITCHAR + "*|" + tagidSPLITCHAR + "*tagid)", "g"), ''); 
d.value = s; 
tags = s.split(tagidSPLITCHAR); 
} 
</script> 
</head> 
<body> 
如果没有出现提示框请刷新一下页面再试~ 
<input type="text" id="selecttags" name="m_tagsname" class="m_tagsname" style="width: 577px" 
value="点击查看热门标签和您曾经使用过的标签" onclick="if(this.value=='点击查看热门标签和您曾经使用过的标签'){this.value='';this.className='m_tagsname'}"> 
<div id="m_tagsItem" style="display: none"> 
<div id="tagClose"> 
关闭</div> 
<p> 
<span>温馨提示:</span>标签间请用“空格”、“逗号”或“分号”隔开,用简练的词语概括您的博文内容。</p> 
<p> 
<span>热门标签:</span><a href="javascript:void(0)" onclick="checktag(this)">彩妆</a><a 
href="javascript:void(0)" onclick="checktag(this)">美发</a><a href="javascript:void(0)" 
onclick="checktag(this)">美优博客</a><a href="javascript:void(0)" onclick="checktag(this)">aaa</a><a 
href="javascript:void(0)" onclick="checktag(this)">bbb</a><a href="javascript:void(0)" 
onclick="checktag(this)">天堂</a><a href="javascript:void(0)" onclick="checktag(this)">eee</a><a 
href="javascript:void(0)" onclick="checktag(this)">fff</a><a href="javascript:void(0)" 
onclick="checktag(this)">ggg</a></p> 
<p> 
<span>您使用过的标签:</span><a href="javascript:void(0)" onclick="checktag(this)">软件</a><a 
href="javascript:void(0)" onclick="checktag(this)">Delphi</a><a href="javascript:void(0)" 
onclick="checktag(this)">博客</a><a href="javascript:void(0)" onclick="checktag(this)">源码</a><a 
href="javascript:void(0)" onclick="checktag(this)">彩妆</a><a href="javascript:void(0)" 
onclick="checktag(this)">google</a><a href="javascript:void(0)" onclick="checktag(this)">新浪</a></p> 
</div> 
<br /> 
<p> 
<a href="http://www.webdm.cn">网页代码站</a> - 最专业的网页代码下载网站 - 致力为中国站长提供有质量的网页代码!</p> 
</body> </html>
Javascript 相关文章推荐
js 页面执行时间计算代码
Mar 04 Javascript
jquery 操作DOM案例代码分享
Apr 05 Javascript
jquery取消选择select下拉框示例代码
Feb 22 Javascript
使用pjax实现无刷新更改页面url
Feb 05 Javascript
详解JavaScript基于面向对象之继承实例
Dec 16 Javascript
JS中artdialog弹出框控件之提交表单思路详解
Apr 18 Javascript
微信小程序链接传参并跳转新页面
Nov 29 Javascript
react路由配置方式详解
Aug 07 Javascript
vue-router传递参数的几种方式实例详解
Nov 13 Javascript
layui--select使用以及下拉框实现键盘选择的例子
Sep 24 Javascript
Node使用Selenium进行前端自动化操作的代码实现
Oct 10 Javascript
微信小程序实现滑动操作代码
Apr 23 Javascript
ExtJS[Desktop]实现图标换行示例代码
Nov 17 #Javascript
javascript:void(0)是什么意思示例介绍
Nov 17 #Javascript
巧用js提交表单轻松解决一个页面有多个提交按钮
Nov 17 #Javascript
setInterval()和setTimeout()的用法和区别示例介绍
Nov 17 #Javascript
js用正则表达式来验证表单(比较齐全的资源)
Nov 17 #Javascript
jquery在项目中做复选框时遇到的一些问题笔记
Nov 17 #Javascript
jQuery学习之prop和attr的区别示例介绍
Nov 15 #Javascript
You might like
PHP异步调用socket实现代码
2012/01/12 PHP
PHP中集成PayPal标准支付的实现方法分享
2012/02/06 PHP
php strrpos()与strripos()函数
2013/08/31 PHP
百度工程师讲PHP函数的实现原理及性能分析(一)
2015/05/13 PHP
PHP中addslashes与mysql_escape_string的区别分析
2016/04/25 PHP
javascript继承之为什么要继承
2012/11/10 Javascript
jquery等宽输出文字插件使用介绍
2013/09/18 Javascript
JavaScript避免代码的重复执行经验技巧分享
2014/04/17 Javascript
javascript中关于&amp;&amp; 和 || 表达式的小技巧分享
2015/04/10 Javascript
JS中的数组方法笔记整理
2016/07/26 Javascript
Vue.js实战之使用Vuex + axios发送请求详解
2017/04/04 Javascript
vue的Virtual Dom实现snabbdom解密
2017/05/03 Javascript
angular bootstrap timepicker TypeError提示怎么办
2017/06/13 Javascript
jQuery实现监听下拉框选中内容发生改变操作示例
2018/07/13 jQuery
JavaScript中的回调函数实例讲解
2019/01/27 Javascript
JavaScript实现轮播图片完整代码
2020/03/07 Javascript
vue实现公告栏文字上下滚动效果的示例代码
2020/06/16 Javascript
[02:30]辉夜杯主赛事第二日胜者组半决赛 CDEC.Y赛后采访
2015/12/26 DOTA
基于Python实现的扫雷游戏实例代码
2014/08/01 Python
在Django框架中编写Contact表单的教程
2015/07/17 Python
Python中动态检测编码chardet的使用教程
2017/07/06 Python
Django中针对基于类的视图添加csrf_exempt实例代码
2018/02/11 Python
python实现人人自动回复、抢沙发功能
2018/06/08 Python
Python Learning 列表的更多操作及示例代码
2018/08/22 Python
python print出共轭复数的方法详解
2019/06/25 Python
Python实现冒泡排序算法的完整实例
2020/11/04 Python
H5 canvas中width、height和style的宽高区别详解
2018/11/02 HTML / CSS
跑鞋、网球鞋、网球拍、服装及装备:Holabird Sports
2016/09/19 全球购物
网络工程系信息安全技术专业大学生求职信
2013/10/22 职场文书
房屋分割离婚协议书范本
2014/12/01 职场文书
团员个人总结
2015/02/26 职场文书
留学推荐信中文范文
2015/03/26 职场文书
小学生作文之《压岁钱的烦恼》
2019/09/27 职场文书
Redis源码阅读:Redis字符串SDS详解
2021/07/15 Redis
springboot 启动如何排除某些bean的注入
2021/08/02 Java/Android
Python3.8官网文档之类的基础语法阅读
2021/09/04 Python