0

我有以下代码

HTML:

<div id="test">
    <p id="hello">HELLO</p>
    <p id="no-hello">NO HELLO</p>
</div>

jQuery:

 $('#test').click(function() {
       alert($('#hello').is(':hover'));
        if ($('#hello').is(':hover')) {
            alert('hello');
        }
    });

我一直在使用 jQuery 1.6,它运行良好。但是现在由于某种原因,使用了 1.9,这已经停止工作。我尝试在网上寻找解决方案,但没有得到任何提示。

谢谢大家。

4

2 回答 2

0

如果您在这种情况下需要点击区域的 id,您可以尝试:

$('#test').click(function(event) {
   alert(event.target.id);
    if (event.target.id == "hello") {
        alert('hello');
    }
});

样本

但是您提供的方法在 jQuery 1.9+ 上不受支持

请参阅您的方法的一种替代方法:

$('#test').click(function() {
   alert($('#hello:hover').length ==1);
    if ($('#hello:hover').length) {
        alert('hello');
    }
});

样品 2

于 2013-03-20T14:46:11.340 回答
0

正如 AV 所指出的,您的方法在 jQuery 1.9+ 中不起作用。

但是,您为什么要这样做呢?

为什么不简单地将两个不同的点击事件分配给hellono-hello

function doOnBoth() { ... };

$("#hello").click(function () {
    doOnBoth();
    alert('hello');
});

$("#no-hello").click(function () {
    doOnBoth();
    alert("not hello");
});

或者,您可以为这两个元素分配类,然后为该类分配一个点击事件,并为 ID 分配单独的点击事件。

问题是,可以在不先触发悬停的情况下触发点击

除非我没有得到你想要达到的目标......

于 2013-03-20T14:51:17.590 回答