我见过与此相关的非常相似的问题,但这些问题只涉及按键事件,而不是按照我的方式点击鼠标。
基本上我正在尝试确定用户是否单击了鼠标左键或右键。我的代码:
$(".class_name").mousedown(function () {
switch (event.which) {
case 1: //leftclick
//...
break;
case 3: //rightclick
//...
break;
}
});
这适用于Safari,但不适用于IE或Firefox。 IE& FF表现得好像什么也没发生,而Safari执行特定点击的代码。 jQuery通常很适合跨浏览器兼容性,因此我猜我需要以不同的方式格式化代码,但不确定具体如何。
非常感谢任何帮助。谢谢你的时间。
答案 0 :(得分:5)
这里的问题是你使用的是global window.event
对象,而不是jQuery的事件对象。 window.event
仅适用于某些浏览器,而且不是W3C标准。
jQuery规范化事件对象,使其在所有浏览器中都相同。事件处理程序将jQuery事件对象作为参数传递。你应该使用它。
$(".class_name").mousedown(function (e) {
switch (e.which) {
case 1: //leftclick
//...
break;
case 3: //rightclick
//...
break;
}
});
答案 1 :(得分:3)
您忘记将事件变量放入函数调用中。
$(".class_name").mousedown(function (/*HERE*/event) {
switch (event.which) {
case 1: //leftclick
//...
break;
case 3: //rightclick
//...
break;
}
});