FancyBox, Получаване на ATTR на щракнатия елемент

Имам следните редове код:

    $("a.quickview").fancybox({
        ajax : {
            type    : "POST",
            data    : 'itemID=' + $(this).attr("name")
        }
    });

Което е задължително за:

<a name="614" class="quickview" href="/bg/URL/index.cfm">quick view</a>

Искам данните да се публикуват като itemID=614, но $(this).attr("name") се връща като недефинирано? какво правя грешно

Благодаря


person AnApprentice    schedule 28.03.2010    source източник


Отговори (3)


Ако използвате Fancybox 2.0, можете да направите това:

$("a.quickview").fancybox({
    ajax : {
        type    : "POST",
        data    : 'itemID=' + $(this.element).attr("name")
    }
});]

Източник: Кодов фрагмент от проблем с fancyBox Github (това работи) =>

$(".fancybox").fancybox({
  beforeShow : function() {
    this.title = $(this.element).attr('fancybox-title');
  }
});
person Jonathan Lin    schedule 06.09.2012

Начинът, по който си го написал $(this), не е това, което очакваш. this в този контекст не е a, върху което се щраква, а каквото и да е this, когато стартирате $("a.quickview").fancybox({...}).

Вместо това използвайте този код

$("a.quickview").each(function() {
    var a = $(this);
    a.fancybox({
        ajax : {
            type    : "POST",
            data    : 'itemID=' + a.attr("name");
        }
    });
});

или ако има само един a.quickview, който искате да свържете fancybox, за да използвате този по-прост код

var a = $("a.quickview");
a.fancybox({
    ajax : {
        type    : "POST",
        data    : 'itemID=' + a.attr("name");
    }
});
person jitter    schedule 28.03.2010
comment
има списък с ‹ul› на Quickview... Току-що пробвах кода, без значение кой QuickView щракна, той винаги намира името ATTR за първото A в списъка ‹LI›, а не това, което щракнах на... Идеи? - person AnApprentice; 29.03.2010
comment
Какво имате предвид под списък с <ul> на Quickview? Вашият селектор казва a.quickview, което означава всички <a> тагове, които имат бърз преглед на класа - person jitter; 29.03.2010

Това го направи за мен:

onComplete: функция( екземпляр, слайд) {

// Clicked element
console.info( slide.opts.$orig );

}

person Auzzzy    schedule 13.03.2017
comment
Този отговор ми даде необходимата подсказка. Fancybox 3: this.opts.$orig - person chongo2002; 01.04.2017