Javascript 修复imageswap onclick函数
我目前有一个工作图像交换代码。但我不想交换所有图像。如果您希望只能够彼此交换橙色图像。如果橙色图像与蓝色或红色图像交换,使橙色与红色或蓝色图像相同,而不影响红色或蓝色图像。这是一个样本 需要处理的代码Javascript 修复imageswap onclick函数,javascript,Javascript,我目前有一个工作图像交换代码。但我不想交换所有图像。如果您希望只能够彼此交换橙色图像。如果橙色图像与蓝色或红色图像交换,使橙色与红色或蓝色图像相同,而不影响红色或蓝色图像。这是一个样本 需要处理的代码 var pix = document.getElementById("GALLERY").getElementsByTagName("img"); for ( var p = 0; p < pix.length; ++p ) { pix[p].onclick = picclick; } v
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;
};
var pix=document.getElementById(“GALLERY”).getElementsByTagName(“img”);
对于(var p=0;p
红色和蓝色也不能相互交换
到目前为止,我所尝试的:
我一直在尝试如果
1st\u image\u clicked=sall.png
然后2nd\u image\u clicked=sall.png
或者如果1st\u image\u clicked=0-1.png
和2nd\u image\u clicked=sall.png
如果我理解正确,这就是你想要的:
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;
};
展示您的尝试,解释失败的原因,改进您的措辞或举例说明。考虑一下,我想我用这个例子尽可能清楚地说明了这一点。我不确定我需要什么。我一直在尝试如果
1st\u image\u clicked=sall.png
然后2nd\u image\u clicked=sall.png
或者如果1st\u image\u clicked=0-1.png
和2nd\u image\u clicked=sall.png