FancyBox,获取项目的ATTR点击

时间:2010-03-28 17:57:15

标签: jquery dom jquery-plugins css-selectors fancybox

我有以下几行代码:

    $("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”)将以未定义的形式返回?我做错了什么?

由于

3 个答案:

答案 0 :(得分:15)

如果您使用Fancybox 2.0,则可以执行此操作:

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

来源:Code snippet from fancyBox Github issue(此作品)=&gt;

$(".fancybox").fancybox({
  beforeShow : function() {
    this.title = $(this.element).attr('fancybox-title');
  }
});

答案 1 :(得分: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

或者如果只有一个var a = $("a.quickview"); a.fancybox({ ajax : { type : "POST", data : 'itemID=' + a.attr("name"); } }); 你想绑定fancybox来使用这个更简单的代码

{{1}}

答案 2 :(得分:2)

这对我有用:

  

onComplete:function(instance,slide){

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

}