2017-05-18 244 views
0

我有一個問題,我無法修復... 如何更改研磨機的大小(只有圖片),同時點擊15CM(p元素)。正常尺寸是24CM(班級突出顯示)。當我點擊方形顏色時,它改變了磨牀的顏色(但只有24CM磨牀使用屬性:data-img-k)。當我點擊15CM時,我還想改變磨牀的尺寸。然後它應該改變數據屬性爲15釐米研磨機的圖片:data-img-k15。然後它應該只改變15釐米磨牀的顏色(圖片),直到有人點擊其他尺寸。如何在單擊元素時更改圖片。它只能顯示一種尺寸的圖片,而不能顯示其他尺寸的圖片。

$(document).ready(function() { 
 
    $('.product-color').click(function() { 
 

 

 
     var codek = $(this).data('code-k'); 
 
     var namek = $(this).data('name-k'); 
 
     var imgk = $(this).data('img-k'); 
 

 
     $('#grinder-code-k').text(codek); 
 
     $('#grinder-name-k').text(namek); 
 
     $('#grinder-photo-k').attr('src', imgk); 
 

 

 
    }); 
 
});
.grinder-wrapper { 
 
    color: #111; 
 
    display: flex; 
 
    justify-content: space-around; 
 
} 
 

 
.product-photo { 
 
    height: 600px; 
 
} 
 

 

 
/*Kolumna 1*/ 
 

 
.grinder-wrapper>div { 
 
    width: 33%; 
 
    margin-bottom: 4em; 
 
    background-color: #f8f8f8; 
 
} 
 

 
.grinder-wrapper h3 { 
 
    text-align: left; 
 
    padding: 0; 
 
} 
 

 
.grinder-wrapper>div:first-child { 
 
    background-color: #f4f4f4; 
 
    position: relative; 
 
    display: flex; 
 
    align-items: center; 
 
    justify-content: center; 
 
} 
 

 
.model { 
 
    position: absolute; 
 
    left: 2em; 
 
    top: 1em; 
 
    z-index: 999; 
 
} 
 

 

 
/*Kolumna 2*/ 
 

 
.product-color-outer { 
 
    height: 300px; 
 
    position: relative; 
 
} 
 

 
.product-color-box { 
 
    display: flex; 
 
    margin-bottom: 1em; 
 
} 
 

 
.product-color-box p { 
 
    margin: 0; 
 
} 
 

 
.product-color { 
 
    width: 30px; 
 
    height: 30px; 
 
    cursor: pointer; 
 
} 
 

 
.product-box-up-and-down { 
 
    display: flex; 
 
    flex-direction: column; 
 
    padding: 0 0 0 3em; 
 
} 
 

 
.product-box-down { 
 
    height: 300px; 
 
} 
 

 

 
/*Kolumna 3*/ 
 

 
.product-info-outer { 
 
    height: 300px; 
 
    position: relative; 
 
} 
 

 
.product-box-up { 
 
    display: flex; 
 
    justify-content: flex-start; 
 
} 
 

 
.product-box-up p { 
 
    text-align: center; 
 
} 
 

 
#grinder-code>span, 
 
#grinder-name>span { 
 
    color: #3476bd; 
 
} 
 

 

 
/*Border effect wewnątrz*/ 
 

 
.product-color-outer:after { 
 
    content: ''; 
 
    height: 2px; 
 
    width: 90%; 
 
    background: #e9e9e9; 
 
    display: block; 
 
    position: absolute; 
 
    bottom: 0em; 
 
    right: 0; 
 
} 
 

 
.product-color-outer:before { 
 
    content: ''; 
 
    height: 90%; 
 
    width: 2px; 
 
    background: #e9e9e9; 
 
    display: block; 
 
    position: absolute; 
 
    bottom: 0em; 
 
    right: 0; 
 
} 
 

 
.product-info-outer:after { 
 
    content: ''; 
 
    height: 2px; 
 
    width: 90%; 
 
    background: #e9e9e9; 
 
    display: block; 
 
    position: absolute; 
 
    bottom: 0em; 
 
    left: -3em; 
 
} 
 

 
.product-box-down-line { 
 
    position: relative; 
 
} 
 

 
.product-box-down p { 
 
    font-weight: bold; 
 
    color: #3476bd; 
 
    padding-right: 2em; 
 
} 
 

 
.highlighted{ 
 
    background-color: #f4f4f4; 
 
    padding: 0.5em 1em; 
 
    color: #888; 
 
    margin-right: 1em; 
 
    color: #111; 
 
    cursor: pointer; 
 
} 
 
.not-highlighted{ 
 
    background-color: #f4f4f4; 
 
    padding: 0.5em 1em; 
 
    color: #cbcbcb; 
 
    margin-right: 1em; 
 
    cursor: pointer; 
 
} 
 

 
/*Kolory tradycyjne*/ 
 
.white{ 
 
    background: #fff; 
 
} 
 
.black{ 
 
    background: #000; 
 
} 
 
.cream{ 
 
    background: #f4f2db; 
 
} 
 
.wenge{ 
 
    background: #432214; 
 
}
 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<div class="wrapper grinder-wrapper"> 
 

 
    <!--First column--> 
 
    <div class="product-photo"> 
 
    <h3 class="model">Model klasyczny</h3> 
 
    <img id="grinder-photo-k" src="http://blosiu.webd.pl/młynki/img/grinders/klasyczny/klasyczny11.png" alt="młynek do mielenia" width="350"> 
 
    </div> 
 

 
    <!--Second column--> 
 
    <div class="product-box-up-and-down"> 
 
    <div class="product-color-outer"> 
 
     <h4>Kolory<span class="available">dostępne</span></h4> 
 
     <p>Tradycyjne</p> 
 
     <div class="product-color-box"> 
 
     <p class="product-color white" data-code-k="W-PR-15-MM" data-name-k="młynek klasyczny, kolor biały, wysokość 24cm, mechanizm metalowy" data-img-k="http://blosiu.webd.pl/młynki/img/grinders/klasyczny/klasyczny1.png" 
 
     data-img-k15="http://blosiu.webd.pl/m%C5%82ynki/img/grinders/klasyczny15/klasyczny1.png"> 
 
     </p> 
 
     <p class="product-color black" data-code-k="SW-PR-15-MM" data-name-k="młynek klasyczny, kolor czarny, wysokość 24cm, mechanizm metalowy" data-img-k="http://blosiu.webd.pl/młynki/img/grinders/klasyczny/klasyczny2.png" 
 
     data-img-k15="http://blosiu.webd.pl/m%C5%82ynki/img/grinders/klasyczny15/klasyczny2.png"> 
 
     </p> 
 
     <p class="product-color cream" data-code-k="KS-PR-15-MM" data-name-k="młynek klasyczny, kolor kremowy, wysokość 24cm, mechanizm metalowy" data-img-k="http://blosiu.webd.pl/młynki/img/grinders/klasyczny/klasyczny3.png" 
 
     data-img-k15="http://blosiu.webd.pl/m%C5%82ynki/img/grinders/klasyczny15/klasyczny3.png"> 
 
     </p> 
 
     <p class="product-color wenge" data-code-k="WG-PR-15-MM-3" data-name-k="młynek klasyczny, kolor wenge, wysokość 24cm, mechanizm metalowy" data-img-k="http://blosiu.webd.pl/młynki/img/grinders/klasyczny/klasyczny4.png" 
 
     data-img-k15="http://blosiu.webd.pl/m%C5%82ynki/img/grinders/klasyczny15/klasyczny4.png"> 
 
     </p> 
 
     </div> 
 

 
    </div> 
 

 
    </div> 
 

 
    <!--Third columnt--> 
 
    <div class="product-box-up-and-down"> 
 
    <div class="product-info-outer"> 
 
     <h4>Wysokości<span class="available">dostępne</span></h4> 
 
     <div class="product-box-up"> 
 
     <div> 
 
      <p class="not-highlighted klasyczny-15" data-k15="img/grinders/klasyczny15/klasyczny1.png">15<br> CM 
 
      </p> 
 
     </div> 
 
     <div> 
 
      <p class="not-highlighted">18<br> CM 
 
      </p> 
 
     </div> 
 
     <div> 
 
      <p class="highlighted">24<br> CM 
 
      </p> 
 
     </div> 
 
     <div> 
 
      <p class="not-highlighted">32<br> CM 
 
      </p> 
 
     </div> 
 
     </div> 
 
    </div> 
 

 
    <div class="product-box-down product-box-down-line"> 
 
     <h4>Informacje</h4> 
 
     <p>Kod produktu: <span id="grinder-code-k">WG-PR-15-MM-3 </span></p> 
 
     <p>Nazwa produktu: <span id="grinder-name-k">młynek klasyczny, kolor wenge, wysokość 24cm, mechanizm metalowy</span></p> 
 
    </div> 
 

 
    </div> 
 

 
    <!--End of wrapper--> 
 
</div>

回答

0

你可以添加一個新的布爾到您的JS每當大小被改變這將切換。在點擊方法之前您的document.ready,您可以添加:var currentSize = '24CM';

然後,在每一個點擊可以檢查大小是否是24或15,並使用特定的數據屬性相應:

$('.product-color').click(function() { 
    var codek = $(this).data('code-k'); 
    var namek = $(this).data('name-k'); 
    var imgk = $(this).data('img-k'); 

    if (currentSize === '15CM') imgk = $(this).data('img-k15'); 
    //you can add as many cases for all sizes here as needed. 

    $('#grinder-code-k').text(codek); 
    $('#grinder-name-k').text(namek); 
    $('#grinder-photo-k').attr('src', imgk); 
}); 

現在規模的點擊,我可能會添加不同的類,這些也可以增加大小到一些新的數據屬性:

<div class="product-box-up size-select-container"> 
    <div> 
     <p class="not-highlighted klasyczny-15" data-size-select="15CM">15<br> CM 
     </p> 
    </div> 
    <div> 
     <p class="not-highlighted" data-size-select="18CM">18<br> CM 
     </p> 
    </div> 
    <div> 
     <p class="highlighted" data-size-select="24CM">24<br> CM 
     </p> 
    </div> 
    <div> 
     <p class="not-highlighted" data-size-select="32CM">32<br> CM 
     </p> 
    </div> 
</div> 

現在,你有這個類,用它來應用點擊:

$('.size-select-container p').click(function() { 
    //remove highlighted class from all sizes 
    $('.size-select-container p').removeClass('highlighted'); 
    $('.size-select-container p').addClass('not-highlighted'); 
    //add highlighted class to the one you selected: 
    $(this).addClass('highlighted'); 
    //now set the currentSize variable based on what is selected: 
    currentSize = $(this).data('size-select'); 
}); 

由於這設置了新的currentSize變量,您現在可以保持查看所選最近大小的圖像,直到該大小發生更改。

+0

你是主人!非常感謝。我想給你買一瓶啤酒:-) – Blosom

0

我還有一個小障礙。點擊('.size-select-container p')時,如何自動更改圖片與研磨器的相同顏色?現在,我必須先點擊p元素,然後再次點擊相同的顏色才能更換較小的研磨機。它看起來很簡單,但它不適合我:-)