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()函数未在按键时执行。

在这里,当用户突出显示任何元素时,我正在尝试这样做,并且在突出显示时,如果他按下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 回答