-1

現在、作業中のイメージ スワップ コードがあります。しかし、すべての画像を画像交換したくありません。オレンジ色の画像のみを互いに交換できるようにしたい場合。また、オレンジ色の画像を青または赤の画像と交換して、赤または青の画像に影響を与えることなく、オレンジを赤または青と同一にする場合。これがサンプルのJsFiddleです

取り組む必要があるコード

var pix = document.getElementById("GALLERY").getElementsByTagName("img");
for ( var p = 0; p < pix.length; ++p )
{
pix[p].onclick = picclick;
}

var firstImage = null;
function picclick( )
{
// to cancel a swap, click on first image again:
if ( firstImage == this ) 
{
    this.className = "normal";
    firstImage = null;
    return;
}
// is this first image clicked on?
if ( firstImage == null )
{
    // yes
    firstImage = this;
    this.className = "highlighted";
    document.getElementById('search').value = "";
    return; // nothing more to do
}
// aha! second image clicked on, so do swap
firstImage.className = "normal";
var temp = this.src;
this.src = firstImage.src;
firstImage.src = temp;
firstImage = null;

};

また、PSの赤と青を入れ替えることはできません。

私がこれまでに試したこと:

私は試してきました if 1st_image_clicked=sold.pngthen2nd_image_clicked=sold.pngまたは if 1st_image_clicked=0-1.pngand 2nd_image_clicked=sold.pngthen1st_imagec_licked & 2nd_image_clicked=sold.png

4

1 に答える 1

0

私が正しく理解している場合、これはあなたが探しているものです:

function picclick() {
    // to cancel a swap, click on first image again:
    if (firstImage == this) {
        this.className = "normal";
        firstImage = null;
        return;
    }
    // is this first image clicked on?
    if (firstImage == null) {
        // yes
        firstImage = this;
        this.className = "highlighted";
        //document.getElementById('search').value = "";
        return; // nothing more to do
    }
    // aha! second image clicked on, so do swap
    firstImage.className = "normal";
    //check if its not blue and red
    if (!(firstImage.alt == 'sold' && this.alt == 'payed') && !(firstImage.alt == 'payed' && this.alt == 'sold')) {
        if (firstImage.alt == 'sold' || firstImage.alt == 'payed') {
            //if first is blue or red, change second
            this.src = firstImage.src;
            this.alt = firstImage.alt;
        } else if (this.alt == 'sold' || this.alt == 'payed') {
            //if second is blue or red, change first
            firstImage.src = this.src;
            firstImage.alt = this.alt;
        } else {
            //do swap
            var temp = this.src;
            var temp2 = this.alt;
            this.src = firstImage.src;
            this.alt = firstImage.alt;
            firstImage.src = temp;
            firstImage.alt = temp2;
        }
    }
    firstImage = null;
};

ワーキングデモ

于 2013-07-20T07:39:58.467 に答える