Attr in fancybox

时间:2012-03-22 22:19:02

标签: jquery fancybox

我尝试在Fancybox中获取我的属性,当我使用href时,我得到了,但如果我尝试获取我的属性,我只会“未定义”。

<a class="grouped_elements" rel="Group1" id="@item.Id" private="@item.Private" title="@item.Title" href="/Image/ShowFile/@item.Id">
                <img src="/Image/ShowThumb/@item.Id" alt="@item.Title"  /></a></div>

function formatTitle(title, currentArray, currentIndex, currentOpts) {

                var titlenormal = '<input type="hidden" id="idPhoto" value="' + currentArray[currentIndex].id + '">' +
                    '<span id="fancybox-title-over">' +
                    '<div id="boxComment" style="position:relative;"><div style="white-space: nowrap;"><div style="float: left;">' + title + '</div><div id="star" style="width:100%">&nbsp;</div></div>';

                alert($(this).attr("href"));



                return titlenormal;

            }

1 个答案:

答案 0 :(得分:1)

如果您在fancybox中设置选项titleFormat,如

$(".fancybox").fancybox({
 'titleFormat': formatTitle
});

然后您的函数formatTitle可以正常工作并提醒href属性值。

您也可以使用this.href代替

编辑:2012年3月23日 - 太平洋时间下午12:30回复评论。

我猜你还不够清楚,无法指定想要获得的属性。

无论如何,alert($(this).attr("href"));有效,因为此时href是fancybox函数中的jQuery对象,而private则不是。{/ p>

作为解决方法,请尝试以下方法:

alert($(".grouped_elements").eq(currentIndex).attr('private'));
在你的formatTitle函数中

,如:

 function formatTitle(title, currentArray, currentIndex, currentOpts) {
  var titlenormal = '<input type="hidden" id="idPhoto" value="' + currentArray[currentIndex].id + '">' +
  '<span id="fancybox-title-over">' +
  '<div id="boxComment" style="position:relative;"><div style="white-space: nowrap;"><div style="float: left;">este es ' + title + '</div><div id="star" style="width:100%">&nbsp;</div></div>';
  alert($(".grouped_elements").eq(currentIndex).attr('private'));
  return titlenormal;
 }

您也可以使用onComplete回调来获取属性private,如:

'onComplete': function(currentArray, currentIndex){
  alert($(".grouped_elements").eq(currentIndex).attr('private'));
}