13

我有以下代码行:

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

这对以下内容具有约束力:

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

我希望数据以 itemID=614 的形式发布,但 $(this).attr("name") 以未定义的形式返回?我究竟做错了什么?

谢谢

4

3 回答 3

15

如果您使用的是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');
  }
});
于 2012-09-06T02:39:07.453 回答
4

你写它的方式$(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");
    }
});
于 2010-03-28T21:50:37.990 回答
2

这为我做到了:

onComplete: 函数(实例,幻灯片){

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

}

于 2017-03-13T02:42:23.553 回答