Attr в fancybox - PullRequest
       7

Attr в fancybox

1 голос
/ 23 марта 2012

Я пытаюсь получить свой атрибут внутри Fancybox, и я получаю, когда использую href, но если я пытаюсь получить свой атрибут, я получаю просто "undefined".

<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 Ответ

1 голос
/ 23 марта 2012

если вы установите параметр titleFormat внутри fancybox как

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

, тогда ваша функция formatTitle сработает и сообщит значение атрибута href.

вы также можете использовать this.href вместо

РЕДАКТИРОВАТЬ : 23 марта 2012 г. - 12:30 вечера PT в ответ на комментарии.

Я полагаю, вы не достаточно ясно указали, какой атрибут требуетсячтобы получить.

В любом случае, alert($(this).attr("href")); работает, потому что href на данный момент является объектом jQuery внутри функции fancybox, а private - нет.

В качестве обходного пути попробуйтеэто вместо этого:

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'));
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...