2

スタイルのあるdivがあります。

このスタイル

 body .d:hover
    {
      background-color:red;
    }

しかし、(可能であれば) Jquery がこのホバー動作を停止することを望みます。

で試しました

 $(".d").hover(function () { return false;});
 $(".d").mouseenter(function () { return false;});

何も助けませんでした。

何か助けはありますか?

これがJSBINです(ボタンを押した後、ホバリングしても何も起こりません。)

4

8 に答える 8

1

この動作を絶えず停止したい場合は、W3C wikiによると、スタイルシートルールを削除できます。

function stop(m) {
    $.each(document.styleSheets, function(i, sheet) {
        $.each(sheet.rules, function(i, rule) {
            if (new RegExp(m + "\\s*:hover").test(rule.selectorText)) {
                sheet.deleteRule(i);
            }  // TODO: improve RegExp
        });
    });
}
stop(".d");

削除せずに状態を変更したい場合は、別のスタイルシートにルールが設定されstyleSheet.disabledている場合に備えて、プロパティを変更するオプションがあります。:hover

ここでの互換性の問題についてはよくわかりませんが、追加で決定する必要があることに注意してください。

デモ:http: //jsbin.com/akunew/10/edit

于 2013-01-29T11:41:22.727 に答える
1

この種のトリックかもしれません:http://jsbin.com/akunew/14/edit

<div style="border:solid 1px red;height:100px;width:100px;" class="d"> </div>
<input  type="button" value="stop this hover" onclick="stop()" id="btn"/>

クラスを削除します。

function stop(){
  $(".d").addClass('e').removeClass('d');
}
于 2013-01-29T11:34:52.973 に答える
1

CSS に新しい定義を追加します。

.d.no-hover:hover {
    background-color: black;
}

no-hoverこれで、ホバー効果がなくなったはずの要素にクラスを追加できます。

$(obj).addClass('no-hover');
于 2013-01-29T11:24:18.113 に答える
0

CSS

.d:hover
{
    background-color:Red;
}
.noClass
{
    background-color:none;
}

JavaScript

function stop()
{
    $(".d").addClass('noClass').removeClass('d');
}
于 2013-01-29T11:41:18.730 に答える
0

私はトリックを使用します-要素にホバーしている(そしてそのHOVERされた要素内の何かをクリックしている)とき、このjavascriptメソッドを使用してそのホバーcssをキャンセルできます:

document.getElementById('sarchevi').className='active';
//on mouse move, remove class
(function(){
    var moved = false
    window.onmousemove = function(e)
    { if(!moved){ moved = true;  document.getElementById('sarchevi').className ='a'; } }
})()
于 2013-12-28T19:00:53.253 に答える
0

あなたがそれを呼び出すと、あなたの element ではなく、あなたのとしてonclick="stop(this)"取得されます。input$(obj).d

編集削除するJavaScriptソリューションはありません:hover

于 2013-01-29T11:27:22.410 に答える
0

あなたのJSBINの例に基づいています。以下のコードが動作します

function stop(obj) { $(obj).hover(function () { $(this).css('background-color','white'); return false;}); $(obj).mouseenter(function () { $(this).css('background-color','white'); return false;});

  $('body').append('<style>body div.d:hover {background-color:transparent !important}</style>');
}

あなたはその特定の要素の :hover css を上書きしました

于 2013-01-29T11:40:09.307 に答える