2011-01-07 3 views
0

AJAXベースのサイトを使用するためにjQueryの素晴らしいプラグインを使用しています。今私は、スリムボックスを指定するためにライブクエリーを使用したいという問題に遭遇しました。問題は、linkFiler関数で述べたように自分のグループを取得できないということです。livequeryがグループと連携していません

$(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)); 
     }); 
    }); 
}); 

どうしたのですか? my pages(バイオグラフィー)の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> 

ありがとう!

UPDATE

それはそのリンクするthisを使用していますので、私は、slimboxコードで私の問題を発見しました。従ってライブクエリが実行されるたびに、thisが上書きされ、実際には完全なセレクタを含む必要があります。

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

しかし、それはlivequeryが行動を望んでいないされてslimboxに向かって多くの時間を発射するだろうやって:たぶん私だけ言って、この問題を解決することができます。それほど頻繁に火をつけない方がいいですか?バイオグラフィーのページ内の他のquestioについては

アップデート2

。画像を削除するにはlivequeryのアップデートがありますが、他のサイトはすべて画像の追加時に正しく処理されます...どのように奇妙な...

答えて

1

私は実際に解決策を見つけましたが、誰かがこれを読んで、これを私に説明できるなら、それはいいだろう。どうにかして、livequeryは空の<head>タグと埋められたタグの間でコードを変更します。だから、もし私のサブページ(BIOやDISCOなど)の中に<style>というタグがあると、それが空であってもライブクエリーが機能します。空の<head>タグがある場合、ライブクエリはページを終了するときにのみ機能します。それは奇妙だった。今私はちょうど空の<style>タグを作成し、すべてのページが正常に動作します。

グループの問題については、私はライブクエリーを少し違ってしまったので、ライブクエストはこれ以上呼ばれません。私のHTMLでは、すべてのサブページに常に<div class="content">があると確信しています。だから私のようなlivequeryを行うことができます:

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

slimboxに問題があることを、それだけでその範囲として、完全なセレクタを取ることができるということです。したがって、スリムボックスを別のセレクタに変更すると、古いものが無効になります。 コードでは、次のようになります。

var links = this; // where this is the $(selector) 
関連する問題