2010-12-27 8 views
0

からリンクを作る、私はサイトのクリック可能に特定のパスすべての画像を作るとjQueryのためのlighboxバリアントプラグインですFancyboxを使用して大きな画像を表示します。はimagenameの取得とjQueryを使ってjQueryの

私の小さな画像が「小さな画像/製品/」、大きなものの下に配置されている「画像/製品/ビッグ」とimagenameのは、常にページが画像を示しているのと同じ

です

<a href="images/products/big/hat.jpg" class="fancybox"><img src="images/products/small/hat.jpg" alt="Nice hat"></a> 
:私が欲しいもの

<img src="images/products/small/hat.jpg" alt="Nice hat"> 

はにこれを行い、いくつかのjQueryのスクリプトです:次のコードで

おそらく、リンクタグのクラスを設定する部分をスキップして、要素のfancyboxを直接有効にすることができます。$(elm).fancybox();

私は少し周りを探していたし、それがjQueryの機能「のattr」「ラップ」は役に立つかもしれないが、私の現在の制限jQueryのスキルを持つ私は本当に接続できないドットのように見えます。

答えて

2

あなたはすべての画像を見つけたい、とあなたが疑われるとして、あなたが本当に構造を変更したい場合は、その後、あなたはwrapを使用することができます。

$('some_parent_selector img[src*=/small]').wrap(function() { 
    return "<a href='" + this.src.replace("/small", "/large") + "' class='fancybox'/>"; 
}); 

Live example(あなたがボタンをクリックすると、要素をあなたがFirebugやDev Toolsを使用している場合や、単にクリックしている場合でも...)。

あなたはところで、attrで正しい軌道に乗っていたが、src属性がHTMLImageElement DOMオブジェクトのプロパティとして反映だものの一つであることを起こるので、あなたはattrを使用する必要はありません。

+0

これを正規化するには、常にattr()を使用する方がよいです。あなたは奇妙な方法でいくつかの狂ったブラウザがDOMを変更することを決める時を知りません。たぶん私はちょうど妄想... xD –

+0

@Mikeの前に起こったようなものではない: 'id'と' src'は安全で、アンカータグでは 'href'(' input'では 'value')と同じです。たとえあなたが妄想的であっても、あなたはそれらに頼ることができます。 :-) –

+0

ありがとう! jQuery関数内で* this *を使用して要素を参照できるかどうかはわかりませんでした。それは私の脳に欠けていたドットでした! :) – Bulan

関連する問題