【问题标题】:Display ALT text as title within fancybox using jquery.fancybox使用 jquery.fancybox 在fancybox 中将 ALT 文本显示为标题
【发布时间】:2015-06-10 11:28:52
【问题描述】:

图像 HTML 看起来像这样

<img  src="image.png" alt="Alt text" title="Description">

我有特殊的功能可以在fancybox中输出显示图像标题作为没有扩展名的文件名和描述。

我的问题是:如果 alt 不为空,如何从 alt 属性中获取值并输出它而不是 filename(title_new)。

jquery.fancybox-1.3.4.pack.js(完整http://pastebin.com/bFmg95AT

_format_title = function(title) {
            var nstr=imgPreloader.src;
            var nres=nstr.split("/");

            var img_name=nres[nres.length-1];
            var img_name_arr=img_name.split(".");
            var title_new= "<b>"+img_name_arr[0]+"</b><br>";

        if (title && title.length) {

                if (currentOpts.titlePosition == 'float') {
                    return '<table id="fancybox-title-float-wrap" cellpadding="0" cellspacing="0"><tr><td id="fancybox-title-float-left"></td><td id="fancybox-title-float-main">' +title_new+  title+ '</td><td id="fancybox-title-float-right"></td></tr></table>';
                }

                return '<div id="fancybox-title-' + currentOpts.titlePosition + '">' + title_new + title + '</div>';

            }

【问题讨论】:

  • 您是否通过链接调用fancybox,并且&lt;img&gt; 标签在该链接内?
  • 标签在链接内,在这里缩短示例:
  • 由于您使用的是 fancybox v1.3.4,因此该版本有一个(未记录的)API 选项 titleFromAlt 可供您使用。查看我在 2010 年写的这篇文章 groups.google.com/forum/#!topic/fancybox/PaFNiK8jk8w
  • 我在 2012 年 stackoverflow.com/a/9982524/1055987 也回答了一个类似的问题,我实际上参考了上面的链接。希望对你有帮助

标签: jquery fancybox nextgen-gallery


【解决方案1】:

要获取图像的 alt 属性,您可以使用类似这样的代码,其中“this”是您正在使用的图像。

var alt = $(this).attr("alt");

【讨论】:

  • 使用它后,它说 undefined in place '+alt+' 被放置。还是我需要通过将其替换为其他代码来修改它?我看到这个标题 = selectedOpts.title || (obj.nodeName ? $(obj).attr('title') : obj.title) || '';和标题 = selectedOpts.orig.attr('alt');代码中的某处
【解决方案2】:

此答案的工作前提是 'title_new' 已被声明并赋予默认值

if (typeof $('img').attr('alt') !== typeof undefined && $('img').attr('alt') !== false)
{
    title_new = $('img').attr('alt');
}

【讨论】:

  • 不起作用可能是语法错误?这就是它如何获得 title title = selectedOpts.title || (obj.nodeName ? $(obj).attr('title') : obj.title) || '';
  • 对不起罗卡斯。在发布之前我确实检查了语法。我想知道两件事:代码在函数中的位置。我是否正确理解您想要设置 title_new 变量的值。
猜你喜欢
  • 1970-01-01
  • 2015-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-26
  • 1970-01-01
相关资源
最近更新 更多