鼠标按下图像链接检测

时间:2013-05-13 15:12:55

标签: javascript html

我正在尝试建立一个图像,我可以按任意按钮,如果有一个右,左,ou双击得到。

喜欢这些:

    <img id="myImgId" alt="" src="image.jpeg"   onmousedown="click(event)"/>
    <p><span id="click"></span></p>


<script type="text/javascript">
function click(event)
{
    if(event.button==2) 
    {
        document.getElementById("click").innerHTML="Last Action: Right Click";
        document.getElementById("click").value="Last Action: Right Click";
    }
    else if(event.button=0)
    {
        if(event.getclickcount() = 1)
        {
            document.getElementById("click").innerHTML="Last Action: Left Click";
            document.getElementById("click").value="Last Action: Left Click";
        }
        else if(event.getclickcount() = 2)
        {
            document.getElementById("click").innerHTML="Last Action: Double Click";
            document.getElementById("click").value="Last Action: Double Click";
        }
    }
}
</script> 

我期待当我点击图片时,这会有所作为......

1 个答案:

答案 0 :(得分:1)

首先,我想让您知道Javascript 不是 Java! getClickCount()是一种Java方法,而不是Javascript方法。

然后,我建议您阅读:Mouse Events

最后一件事。当您使用 getElementById 时,它会返回一个HTMLElement。如果此元素是跨度,则无需设置其,因为其innerHTML足够了!

如果你只是需要检查这三个事件,有一些内置的方法可以让你做类似的事情,这里有一个小片段,显示不同类型的点击和HTML之间的互动:

HTML部分

<img id="myImgId" alt="" src="image.jpeg" />
<p><span id="click"></span></p>

Javascript代码

var myImg = document.getElementById('myImgId'),
    clickSpan = document.getElementById('click'),
    events = {
        click: 'Left',
        contextmenu: 'Right',
        dblclick: 'Double'
    };
function changeClickSpanValue(eventType) {
    clickSpan.innerHTML = 'Last Action: ' + events[eventType] + ' Click';
}
myImg.onclick = function(event) {
    event.preventDefault();
    changeClickSpanValue('click')
};
myImg.oncontextmenu = function(event) {
    event.preventDefault();
    changeClickSpanValue('contextmenu');
}
myImg.ondblclick = function(event) {
    event.preventDefault();
    changeClickSpanValue('dblclick');
}

请参阅JSFiddle Demo