0

タイトルにリンクを配置しようとしていますが、これは基本的に選択されたアンカー href であり、プレフィックスが付いています。どうすれば次のことができますか?選択したアンカー要素で this.href を取得できるようにしたい。

$(".gallery-module > li > a").fancybox(
{
    title       : '<a href="'+ this.href + '-large">DOWNLOAD</a><br> High Resolution File, 300dpi'
});
4

2 に答える 2

0

fancyboxをバインドする場合:

$(".gallery-module > li > a").fancybox({
    title: '<a href="'+ this.href + '-large">DOWNLOAD</a><br> High Resolution File, 300dpi'
});

thisは一致する<a>要素でthisはなく、おそらくwindowそうです。の属性でthis.hrefはなく、(おそらく)であり、それはタイトルに必要なものではありません。<a>hrefthis.hrefwindow.href

fancybox内のリンクからの情報を使用する場合は、fancyboxを使用して一致する要素のセットを反復処理し、それぞれに個別eachにバインドできます。<a>

$('.gallery-module > li > a').each(function() {
    // 'this' will be the <a> in here
    $(this).fancybox({
        title: '<a href="'+ this.href + '-large">DOWNLOAD</a><br> High Resolution File, 300dpi'
    });
});

$('.gallery-module > li > a').eachコールバックの中にthisは、<a>あなたが探しているものがあります。

于 2012-06-04T01:17:02.993 に答える
0

fancybox v1.3.xを使用していると思いますよね?

this.hrefそのバージョンでは、コールバック関数内にない限り、直接参照することはできません。あなたの場合、あなたは次のtitleFormatようなカスタマイズされたタイトルのオプションを使用することができます

$(".gallery-module > li > a").fancybox({
 titleFormat: function(){
  return '<div class="newTititleWrap"><a href="'+ this.href + '-large">DOWNLOAD</a><br> High Resolution File, 300dpi</div>'
 } 
});

DIVカスタマイズしたタイトルを、後で使用してスタイルを設定できるclass = (または任意のもの)でラップしたことに注意してください。newTititleWrapcss

更新:私はタグを逃しましたfancybox-2(私の悪い)。fancybox v2.0.6の場合、次のbeforeShowようなコールバックオプションを使用します。

 $(".gallery-module > li > a").fancybox({
   beforeShow : function() {
    this.title = '<div class="newTititleWrap"><a href="'+ this.href + '-large">DOWNLOAD</a><br> High Resolution File, 300dpi</dv>';
   } 
 }); // fancybox

他の誰かに役立つ場合に備えて、v1.3.4のソリューションを投稿させていただきます。

于 2012-06-04T01:25:17.620 に答える