我有一段JS代码如下;
window.onbeforeunload = function saveFav() {
//Some JS code
}
现在需要从链接点击处理程序
调用此相同的函数所以我只是直接调用函数;
$("#someLink").click(function() {
saveFav();
});
但由于某些原因,没有从链接点击中调用saveFav()...是否存在语法问题或者仅在页面卸载时调用该函数?
我不想复制代码,因为它在卸载和链接点击时都是相同的。
请帮帮我。谢谢。
答案 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函数。