0

商品画像の一覧を表示するショッピング サイトの商品閲覧ページがあります。

一部の製品にはカラー オプションがあり、これらのカラー オプションの画像は、関連するカラー ボックスをクリックすると表示されます。メインの製品画像は、関連する色付きの製品画像に置き換えられます。

以下のjqueryコードを使用して、この製品画像の交換を行い、さらに画像をホバリングしたときに表示されるホバー画像のURLを渡します(別のコードで行われます)

// change browse image on child colour box click
jQuery(function() {
    jQuery('div[child-image]').click(function(event) {
        jQuery('img[id~=product-browse-image-'+event.target.id+']')
            .attr('src', jQuery(this).attr('child-image'))
            .attr('hover-image', jQuery(this).attr('child-hover-image'))
    }).each(function() {
        jQuery('<img />').attr('src', jQuery(this).attr('child-image'));
    });;
});

店内の商品を色でフィルタリングすることもできます。

&colour=RED1たとえば、これが行われると、URLに追加されます

この変数を使用して、値「RED1」またはページの読み込み時に表示される値に基づいて画像を切り替えたいので、製品に赤い色のオプションがある赤いアイテムをフィルタリングすると、赤い画像が表示されます。赤で販売されたばかりの製品は、すでに赤で唯一の画像を表示しています。

この場合、関連する画像を保持する色付きのボックスは、次のように置き換えます。

<div id="1" class="child-colour RED1" child-image="/images/BC_00000475_190x253.jpg" child-hover-image="/BC_00000474_190x253.jpg"></div>

URL から変数値を取得できます。この説明のために、「値」とします。

したがって、ある時点でこれを使用する必要があると思います。

div[class^="child-colour '+value+'"]

しかし、それとは別に、上記のコードを使用して説明したことを達成する方法がわかりません。

4

1 に答える 1

0

赤と青の 2 つの子製品オプションを持つ製品の HTML コードは、この投稿の下部に示されています。

URL &colour=RED1 (/index.php?option=com_virtuemart&view=category&virtuemart_category_id=2&Itemid=112&cupboard_knobs_colour=multi) で 'RED1' 値を使用して、この div の値でメインの製品画像を強制的に交換したい

<div id="1" class="child-colour RED1" child-image="/images/stories/virtuemart/product/resized/BC_00000475_190x253.jpg" child-hover-image="/images/stories/virtuemart/product/resized/BC_00000474_190x253.jpg"></div>

最初の投稿でjqueryを操作して、準備ができたドキュメントで実行し、URLから色変数を使用するだけでよいと思います。

-- 以下の html コード --

<div class="product floatleft">
    <div class="spacer">
      <div class="center">
      <div class="product-browse-image">

      <a title="/index.php?option=com_virtuemart&amp;view=productdetails&amp;virtuemart_product_id=1&amp;virtuemart_category_id=2&amp;Itemid=112" href="/index.php?option=com_virtuemart&amp;view=productdetails&amp;virtuemart_product_id=1&amp;virtuemart_category_id=2&amp;Itemid=112">


        <img width="100%" id="product-browse-image-1" src="/images/stories/virtuemart/product/resized/BC_00000475_190x253.jpg" hover-image="/images/stories/virtuemart/product/resized/BC_00000474_190x253.jpg" tmp="/images/stories/virtuemart/product/resized/BC_00000474_190x253.jpg">        </a>
        </div>
        <!-- The "Average Customer Rating" Part -->
                      </div>
      <div>
                <a href="/index.php?option=com_virtuemart&amp;view=productdetails&amp;virtuemart_product_id=1&amp;virtuemart_category_id=2&amp;Itemid=112">Ashed Fleurs-De test</a>    



        <div class="product-price marginbottom12" id="productPrice1">
          <div class="PricesalesPrice" style="display : block;"><span class="PricesalesPrice">£28.80</span></div>        </div>
        <a class="quick-view cboxElement" href="/index.php?tmpl=modal&amp;option=com_virtuemart&amp;view=productdetails&amp;virtuemart_product_id=1&amp;virtuemart_category_id=2&amp;Itemid=112&amp;productlayout=quickview" rel="/index.php?tmpl=modal&amp;option=com_virtuemart&amp;view=productdetails&amp;virtuemart_product_id=1&amp;virtuemart_category_id=2&amp;Itemid=112&amp;productlayout=quickview">QV</a>
        <p>
          <a href="/index.php?option=com_virtuemart&amp;view=productdetails&amp;virtuemart_product_id=1&amp;virtuemart_category_id=2&amp;Itemid=112" title="Ashed Fleurs-De test" class="product-details">Product details</a>                        


                                 <span class="product-field-display"></span></p><div id="1" class="child-colour BLU1" child-image="/images/stories/virtuemart/product/resized/BC_00000484_190x253.jpg" child-hover-image="/images/stories/virtuemart/product/resized/BC_00000485_190x253.jpg"></div><div id="1" class="child-colour RED1" child-image="/images/stories/virtuemart/product/resized/BC_00000475_190x253.jpg" child-hover-image="/images/stories/virtuemart/product/resized/BC_00000474_190x253.jpg"></div>
                  <p></p>
      </div>
      <div class="clear"></div>
    </div>
    <!-- end of spacer -->
  </div>
于 2013-07-08T10:08:40.590 に答える