Javascript 单击子元素而不触发父元素
我正在尝试编写一个脚本,将图像放入容器中。我想我应该能够移动图像。 问题是,我检查是否要放置图像,或者容器是否已满,当我尝试单击容器中的图像时,它首先运行检查Javascript 单击子元素而不触发父元素,javascript,html,containers,parent,Javascript,Html,Containers,Parent,我正在尝试编写一个脚本,将图像放入容器中。我想我应该能够移动图像。 问题是,我检查是否要放置图像,或者容器是否已满,当我尝试单击容器中的图像时,它首先运行检查 function isTemp() { if(temp == null) { alert("Please pick an item to place in the container"); } e
function isTemp()
{
if(temp == null)
{
alert("Please pick an item to place in the container");
}
else
{
holder = true;
}
}
function fillLarge()
{
isTemp();
if(holder)
{
if(largeArray[0] != undefined &&largeArray[1] != undefined &&largeArray[2] != undefined && largeArray[3] != undefined &&largeArray[4] != undefined &&largeArray[5] != undefined)
{
alert('This crate is full');
}
else
{
for (var i=0; i<6; i++)
{
if (largeArray[i] == undefined)
{
largeArray[i] = /*"<span id = '"+temp+"'onclick='temp=this.id; break;'>*/"<img src='image/"+temp+".jpg'/>"/*</span>"*/;
largeArray[i].id = temp;
document.getElementById("la").innerHTML += largeArray[i];
break;
}
}
document.getElementById(temp).style.display="none";
temp = null;
}
holder = false;
}
函数isTemp()
{
if(temp==null)
{
警告(“请选择要放入容器中的物品”);
}
其他的
{
holder=真;
}
}
函数fillLarge()
{
isTemp();
如果(持有人)
{
如果(largeArray[0]!=未定义和largeArray[1]!=未定义和largeArray[2]!=未定义和largeArray[3]!=未定义和largeArray[4]!=未定义和largeArray[5]!=未定义)
{
警报(“此板条箱已满”);
}
其他的
{
对于(var i=0;iTry event.stopPropagation()-documented防止冒泡,可以通过返回false来实现
<div>
<h3> LARGE CONTAINER </h3>
<span id="la" onclick="fillLarge(); return false;"></span>
</div>
大型集装箱
注意:这也会阻止默认行为(例如停止链接等)。
一些解释JS事件基础知识的阅读材料:Oops-好的观点-另一个参考是-尽管我指向jQuery文档,但它不是jQuery独有的。daan的链接中还有其他信息
<div>
<h3> LARGE CONTAINER </h3>
<span id="la" onclick="fillLarge(); return false;"></span>
</div>