关于Javascript函数调用的问题

时间:2011-09-15 10:12:42

标签: javascript jquery javascript-events

我有一段JS代码如下;

window.onbeforeunload = function saveFav() {
//Some JS code
}

现在需要从链接点击处理程序

调用此相同的函数

所以我只是直接调用函数;

$("#someLink").click(function() {
   saveFav();
});

但由于某些原因,没有从链接点击中调用saveFav()...是否存在语法问题或者仅在页面卸载时调用该函数?

我不想复制代码,因为它在卸载和链接点击时都是相同的。

请帮帮我。谢谢。

3 个答案:

答案 0 :(得分:7)

非常简单,一次定义函数:

function saveFav() {
   //...
}

然后将其分配给适当的处理程序:

window.onbeforeunload = saveFav;
$("#someLink").click(saveFav);

您的代码无效的原因是因为创建 named function expression 会在当前创建一个符号具有函数名称的作用域,而名称仅存在于函数本身的范围内,其唯一目的是使函数能够递归调用自身。

答案 1 :(得分:2)

您只想定义您的功能,然后将其分配给:

function saveFav() {
  //Some JS code
}

window.onbeforeunload = saveFav;
$("#somelink").click( saveFav );

您当然可以指定其中任何一个事件来调用匿名函数来执行其他操作,然后调用saveFav,但是没有必要定义只调用saveFav的匿名函数。

答案 2 :(得分:0)

如果你想以这种方式调用它,你应该在将它指定给onbeforeunload之前定义你的saveFav函数。