悬停不适用于jQuery 1.9

时间:2013-03-20 14:33:32

标签: jquery

我有以下代码

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而这已经停止了工作。 我尝试在网上找到解决方案,但没有得到任何暗示。

Thanx All。

2 个答案:

答案 0 :(得分:0)

如果您需要在此上下文中单击区域的ID,您可以尝试:

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

Sample

但是jQuery 1.9 +

不支持你提供的方法

请参阅您方法的另一种选择:

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

Sample 2

答案 1 :(得分:0)

作为A.V.指出,你的方法不适用于jQuery 1.9 +。

但是你为什么这样做呢?

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

function doOnBoth() { ... };

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

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

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

问题是,可以触发点击而不会先触发悬停

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