惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Security Blog
Microsoft Security Blog
Jina AI
Jina AI
量子位
博客园 - 叶小钗
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
IT之家
IT之家
S
SegmentFault 最新的问题
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
小众软件
小众软件
Hugging Face - Blog
Hugging Face - Blog
雷峰网
雷峰网
博客园 - 聂微东
美团技术团队
Last Week in AI
Last Week in AI
罗磊的独立博客
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
宝玉的分享
宝玉的分享
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园_首页
V
Visual Studio Blog
大猫的无限游戏
大猫的无限游戏
The Cloudflare Blog

博客园 - stu_acer

对C#对象的Shallow、Deep Cloning认识【转】 PowerShell 启动应用程序【转】 把boolean 参数放到最后面(Put boolean arguments last)【转载】 几个收藏的根据数据库生成Insert语句的存储过程[修正版] SQL Server删除外键约束 IE6下PNG图片透明显示解决方法(From QQ) 用Regex类计算一个字符串出现次数是最好方法【转载】 C#有关Session 操作的几个误区【转】 - stu_acer - 博客园 DataList绑定数据到泛型类(Dictionary) 【转】 重写Asp.NET2.0 TreeView的折叠/展开方法(TreeView_ToggleNode) javascript window.close() 去掉那讨厌的确认对话框【转】 jQuery操作checkbox的例子(全选,反选,获取选取值)【转】 查看SQL Server 2005版本号 创建SQL索引,查看SQL性能语句收集 ddlevelsmenu在IE6下,与select冲突的解决办法【整理】 IE6 Select元素无法被div等元素覆盖的bug解决办法【zz】 利用Attribute和反射从模板生成短信 - stu_acer - 博客园 Session & Cookie 的使用建议(zz) - stu_acer AdventureWorks、Northwind、pubs示例数据库下载
thickbox使用技巧【转】 - stu_acer - 博客园
stu_acer · 2009-10-13 · via 博客园 - stu_acer

thickbox是一个不错的对话框插件,不过官方站提供的使用方法具限性很大。比如,我页面上有个缩略图,点击之后用thickbox显示大图。使用官方的方法:

<a href="大图的URL" title="简介" class="thickbox"><img src="小图的URL" border="0"/></a>

这种方法虽然方便,但局限性很大。
第一、你必须为每个这样的img标签外套一个a标签
第二、只能用class="thickbox"让thickbox去绑定事件
第三、不能自己定义事件
第四、当使用AJAX载入页面后,载入的页面内的这些DOM不会被thickbox绑定

稍稍看了下thickbox的代码,其实以上问题完全可以使用thickbox自己的方法来解决,以下举例说明。

例一。我能自己定位到需要用thickbox的元素,不想再加上class="thickbox"。HTML如下:

<div id="PicList">
  <a href="Pic01.jpg"><img src="Pic01s.jpg" border="0"/></a>
  <a href="Pic02.jpg"><img src="Pic01s.jpg" border="0"/></a>
</div>

需要对id="PicList"里面的a标签下的img使用thickbox,代码如下:

$(function() {
  tb_init("#PicList a[img]");
});

例二。我用AJAX载入了一段HTML,但该HTML里的class="thickbox"这样的标签点击了没有任何反应。解决此问题只要在AJAX载入HTML并更新到页面后执行下以下代码:

tb_init('a.thickbox, area.thickbox, input.thickbox'); //引号里的是thickbox的默认选择器,你可以使用例一内这样的自定义选择器

例三。我想点击img标签后显示thickbox,不想在img标签外面再套<a url="大图" class="thickbox">这样的标签。缩略图URL只不过在大图URL的后缀前加了s。比如大图是pic01.jpg、小图是pic01s.jpg。使用以下方法可以做到。HTML如下:

<div id="PicList">
  <img src="Pic01s.jpg" border="0"/>
  <img src="Pic01s.jpg" border="0"/>
</div>

代码如下:

$(function() {
  $("#PicList img").click(function() {
    tb_show("",this.src.substring(0,this.src.length-5)+'.jpg',false);
  });
});

另外,如果想用其它事件,请使将例3里的click改成你想触发thickbox的事件。