我尝试在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%"> </div></div>';
alert($(this).attr("href"));
return titlenormal;
}
答案 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%"> </div></div>';
alert($(".grouped_elements").eq(currentIndex).attr('private'));
return titlenormal;
}
您也可以使用onComplete
回调来获取属性private
,如:
'onComplete': function(currentArray, currentIndex){
alert($(".grouped_elements").eq(currentIndex).attr('private'));
}