2

http://jsfiddle.net/cgWdF/3/を参照してください

最新のOperaを除くすべてのブラウザ*で正常に動作します。

*IE9以下ではテストされていません

指定する必要があります。trueまたはfalseを返す必要があります。イベントのバインドには使用していません。

4

3 に答える 3

5

jQueryはOpera12で.hover動作します。

var $sample = $("#sample");
$sample.hover(function() {
   $sample.css("background", "yellow");
}, function() {
    $sample.css("background", "");
});

フィドル

または、.dataホバーされたステータスを保存してそれに対してテストするために使用します(元のフィドルと同様):

var $sample = $("#sample");
$sample.hover(function() {
   $(this).data('hovering', true);
}, function() {
   $(this).data('hovering', false);
});

setInterval(function(){
    var $sample = $("#sample");
    if($sample.data('hovering')) {
       $sample.css("background", "yellow");
    }
    else {
       $sample.css("background", "");
    }
}, 200);

フィドル

于 2012-08-02T04:46:22.940 に答える
0

.mouseover()と.mouseout()を使用して、同じ効果を得ることができます。また、アニメーションの遅延が必要な場合は、jQuery UIで.animate()を使用できます。

$('#sample').mouseover(
        function() {
            $(this).stop().animate({
                backgroundColor: "yellow"}, 200);
        });

$('#sample').mouseout(
        function() {
            $(this).stop().animate({
                backgroundColor: "#aaa"}, 200);
        });

http://jsfiddle.net/cgWdF/8/

于 2012-08-02T05:00:11.213 に答える
0

jQuery 1.9.1の時点で、他のブラウザはOperaに追いついており、現在はOperaでも機能していません。あなたのフィドルによって調査されたように、「それ」は.is( ":hover")です。

.is( ":hover")の回避策を作成しました。フィドルhttp://jsfiddle.net/mathheadinclouds/BxL4w/を参照してください。

function mouseIsOver(what){
    return $(what).is(":hover");
}
function mouseIsOverWorkaround(what){
    var temp = $(what).parent().find(":hover");
    return temp.length == 1 && temp[0] == what;
}
function mo(what){
    return document.getElementById("workaround").checked ? mouseIsOverWorkaround(what) : mouseIsOver(what);
}
setInterval(function(){
    var theBox = $("#theBox");
    if(mo(theBox[0])) {
       theBox.css("background", "yellow");
    } else {
       theBox.css("background", "");
    }
}, 200);

とhtml

<input type="checkbox" id="workaround"/>
<div id="theBox"></div>
于 2013-04-29T19:32:29.980 に答える