从类选择器中检测右键单击?

时间:2016-02-19 17:07:19

标签: javascript jquery

我有以下HTML,它是使用AJAX调用中的jQuery生成的:

<ul id="ul-container">
    <li class="li-item" data-deviceKey="1">Data1</li>
    <li class="li-item" data-deviceKey="2">Data2</li>
</ul>

然后我有了这个jQuery代码:

$('.li-item').mousedown(function(e) {
    if(e.which == 3) {
        console.log('Right Click Detected on '+$(this).attr('data-deviceKey'));
    }
});

我正在尝试检测鼠标右键,然后在发生时执行某些操作。

这不起作用,它强调了我。我已尝试过几乎所有阳光下的组合,以试图让它发挥作用。有很多东西要列出,但实际上什么都不能检测到右键单击事件。

奇怪的是,如果我将选择器设置为ul的ID,它会检测到它吗?但问题是,我需要从所选的li中获取data-deviceKey属性。

有谁知道问题出在哪里?

我尝试过的事情

1:几乎所有回复都是:How to distinguish between left and right mouse click with jQuery
2:检测右键单击ul的ID然后找到“最接近”的li元素,它刚刚返回列表中的第一个li元素。
3:在我的实际代码中,我的附加了3个类,我尝试使用所有这些没有工作的类 4:尝试使用$('#ul-container li')无效。

甚至可以检测到对类的右击?我哪里错了?在我没有头发之前请帮忙!

1 个答案:

答案 0 :(得分:0)

这只是一个猜测,但是如果您通过AJAX调用加载HTML内容,则需要在将HTML插入DOM后注册单击处理程序

尝试在AJAX请求的usercontrol1 usercontroltest = new usercontrol1(); 回调中注册mousedown

.done