2013-03-21 72 views
-2

我想在相当大的网站上使用fancybox来显示弹出图像,其中一些需要标题,另一些则不需要。fancybox - 标题使用元素

我宁愿将字幕放在隐藏的div元素中,因为它比使用'caption'属性更灵活。我使用了7. Customize title --> Use element instead of attribute的代码。

它工作正常,除了那些没有标题需要和没有隐藏的div元素的图像,fancybox然后使用链接的标题属性作为标题,以便你可以最终得到一个标题,例如, '点击放大'。

这是预期的行为?如果是这样,有没有办法全球覆盖它的网站(而不是图像)。

+0

我不认为这是值得努力看到肯尼迪已经链接到一个jsfiddle显示修复 – peterh 2013-03-28 10:55:04

+0

你是对的。我收回我的评论。 – Jesse 2013-03-28 12:24:58

回答

0

在你提到的例子中,事后你可以只添加手动创建的工具提示的图片,还有的是,评估是否有一个隐藏的div元素的fancybox使用条件为title

if (id) { 
    el = $('#' + id); 

    if (el.length) { 
     this.title = el.html(); 
    } 
} 

你要做的唯一一件事情就是一个else语句添加到该条件在这里您可以覆盖现有title如果标题不存在

if (id) { 
    el = $('#' + id); 

    if (el.length) { 
     this.title = el.html(); 
    } 
} else { 
    // don't show any title in fancybox 
    this.title = ""; 
} 

JSFIDDLE ...最后的图像具有title属性,但没有相应的(隐藏)标题。

+0

这看起来很完美,谢谢。我将把它合并到代码中。 有没有办法将它包含在主fancybox.js文件中,以便它适用于整个网站,还是必须在每个页面头部的fancybox钩子中使用? – peterh 2013-03-21 22:19:30

+0

不需要混淆原始文件,将其添加到您自己的自定义脚本中(例如myCustom.js),并将其与fancybox js和css文件 – JFK 2013-03-21 22:31:55

+0

以及http://meta.stackexchange一起加载到整个站点。 com/a/5235 – JFK 2013-03-21 22:32:23