1

次のコードを使用して、要素を強調表示しています。

$(".ss").live({ 
    mouseenter: function () { HighLight(this) }, 
    mouseleave: function () { OffLight(this); }, 
      keypress: function () { KeyOperation(this); }
});

function HightLight(s)
{
  $(s).css({border : "1px solid red"});
}
function OffLight(s)
{
  $(s).css({border : "0"});
}
function KeyOperation(s)
{
  $(s).remove();
}

KeyOperation()関数はkeypressで実行されていません。

ここでは、ユーザーが任意の要素を強調表示するときにそれを実行しようとしています。強調表示しているときに、を押すDelete keyと、その要素は削除されますが、これは機能しません。誰かがこれを行う方法を教えてもらえますか?

4

1 に答える 1

3

これがあなたが求めているものだと思います。要素にカーソルを合わせる.ssと、一時クラスが追加されます。ユーザーがいつでもキー46を押すと、そのクラスのアイテムは削除されます。以下の作業フィドルを参照してください。

// Bind to a closer parent if possible
$(document)
    .on("keyup", function(e){
        if ( e.which === 46 ) $(".removeMe").remove(); 
    })
    .on("mouseenter mouseleave", ".ss", function(f){
        $(this).toggleClass("removeMe", f.type === "mouseenter" );
    });

この例から$.live、イベントの委任が推奨されなくなったことは明らかです。ここからは$.on代わりに使用してください。

フィドル: http: //jsfiddle.net/YS7jH/2/

于 2012-05-20T07:15:03.090 に答える