0

私は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は画像の削除時に更新されますが、他のすべてのサイトは画像の追加時に適切に実行されます...なんて奇妙な...

4

1 に答える 1

1

私は実際に解決策を見つけましたが、それはかなり奇妙です。誰かがこれを読んで私にこれを説明することができれば、それは素晴らしいことです。どういうわけか、livequeryは、空の<head>タグと塗りつぶされたタグの間で私のコードに違いをもたらします。そのため<style>、サブページ内にタグ(BIOやDISCOなど)がある場合、それが空であっても、livequeryは機能します。空の<head>タグがある場合、livequeryはページを離れるときにのみ機能します。それは奇妙でした。空の<style>タグを作成したところ、すべてのページが正常に機能します。

グループの問題については、livequeryを少し変えたので、livequeryはあまり呼び出されなくなりました。私のHTMLでは、<div class="content">すべてのサブページに常にが含まれていると確信しています。したがって、次のようなライブクエリを実行できます。

$('.content').livequery(function()
{
    $('a[rel^="lightbox"]').slimbox(null, function(el) // link mapper
...

Slimboxの問題は、完全なセレクターをスコープとして使用できることです。したがって、slimboxを別のセレクターに変更すると、古いセレクターが無効になります。そのコードでは、次のようなことを行います。

var links = this; // where this is the $(selector)
于 2011-01-08T23:41:21.843 に答える