私はAJAXベースのサイトを使用するためにjQueryのいくつかの素晴らしいプラグインを使用しています。スリムボックスを指定するためにlivequeryを使用したいという問題が発生しました。問題は、linkFiler関数で指定されているようにグループを取得できないことです。
$(document).ready(function ()
{
$('a[rel^="lightbox"]').livequery(function()
{
$(this).slimbox(null, function(el) // link mapper
{
return [el.href, el.title + '<br/><a href=\"' + el.href + '\">Download</a>'];
}
, function(el) // links filter
{
return (this == el) || ((this.rel.length > 8) && (this.rel == el.rel));
});
});
});
何が問題なのですか?私のページの1つ(経歴)では、スリムボックスはそのサイトのページを更新したときにのみ機能しますが、ページをクリックしたときは機能しません。グループはサイトのディスコグラフィーセクションで機能していません。
バイオとディスコグラフィーの写真の一部は次のとおりです。
<a href="albumCover.jpg" rel="lightbox-disco"><img src="albumCover_thumb.jpg" alt=""></a>
<a rel="lightbox" href="bandPic.png"><img style="float:right;margin-left:1em;" src="bandPic_thumb.png" alt=""></a>
前もって感謝します!
アップデート
スリムボックスコードはリンクとしてを使用しているため、問題が見つかりましたthis
。したがって、livequeryが起動されるたびに、this
は上書きされ、実際には完全なセレクターが含まれている必要があります。たぶん私はこれを言うだけで解決できます:
$('a[rel^="lightbox"]').livequery(function()
{
$('a[rel^="lightbox"]').slimbox(null, function(el) // link mapper
...
しかし、そうすると、livequeryがslimboxに対して何度も起動することになり、これは望ましくない動作になります。それほど頻繁に発火しないようにするためのより良い方法はありますか?
UPDATE2
伝記のページの他の質問については。livequeryは画像の削除時に更新されますが、他のすべてのサイトは画像の追加時に適切に実行されます...なんて奇妙な...