函数未被调用,使用jquery .delegate

时间:2012-03-24 07:22:50

标签: javascript jquery function delegates declaration

我想使用jquery委托来调用一个函数,这很好用:

$("body").delegate("div", "mouseover", function(){
alert("it works");
});

但我也希望能够在其他地方使用相同的功能。因此,不是多次编写相同的函数,我可以单独声明它,并按名称调用它,对吧?

但是这样写,我从来没有看到警报。

function alertMe(){
alert("it works");
};

$("body").delegate("div", "mouseover", alertMe());

4 个答案:

答案 0 :(得分:1)

在定义委托时删除parenthisis。只需给出函数名称

$("body").delegate("div", "mouseover", alertMe);

答案 1 :(得分:1)

jQuery .delegate已被.on方法取代。我建议你改变你的代码来使用它。

function alertMe(){
    alert("it works");
}

$("body").on("mouseover", "div", alertMe);
//$("body").delegate("div", "mouseover", alertMe) -- old method
//Note the change in postion of selector and event

答案 2 :(得分:0)

最好这样做:

$("body").delegate("div", "mouseover", function(){
   alertMe();
   //plug more code down here
});

它有优势,主要是:

  • 如果您想在活动结束后完成其他活动,只需将其添加到
  • 即可
  • 您可以使用此表单(而不是单个alertMe()
  • 调用更多函数

答案 3 :(得分:0)

创建公共事件处理程序很简单

function alertMe(event){
    //you also need to include the event object, for various actions like stopPropagation()
    alert("it works");
};

$("body").delegate("div", "mouseover", alertMe);