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") が undefined として戻ってきますか? 私は何を間違っていますか?

ありがとう

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 をバインドしたいものが 1 つしかない場合

var a = $("a.quickview");
a.fancybox({
    ajax : {
        type    : "POST",
        data    : 'itemID=' + a.attr("name");
    }
});
于 2010-03-28T21:50:37.990 に答える