Javascript 将jQuery回调函数保存在单独的文件中

Javascript 将jQuery回调函数保存在单独的文件中,javascript,jquery,file,callback,Javascript,Jquery,File,Callback,也许我错过了什么,但我有一个: $('a.delete').click(function(){ resp=window.confirm("Are you sure you want to delete this?"); if(resp) return true; else return false; } 现在,我想将回调函数保存到一个单独的js文件中,因为我将在几个页面中使用它。我的逻辑告诉我要这样做: $('a.del').click(delet

也许我错过了什么,但我有一个:

$('a.delete').click(function(){
   resp=window.confirm("Are you sure you want to delete this?");
   if(resp)
       return true;
   else
       return false;
}
现在,我想将回调函数保存到一个单独的js文件中,因为我将在几个页面中使用它。我的逻辑告诉我要这样做:

$('a.del').click(delete_element());
我的js文件如下:

function delete_element(){
   resp=window.confirm("Are you sure you want to delete this?");
   if(resp)
       return true;
   else
       return false;
}
这不管用。每次加载页面时,它都会显示“确认”窗口,即使我没有单击链接

很明显,这次我的逻辑失败了。我错过了什么?

试试看

$('a.delete').click(function(){
  delete_element()
}
编辑

我将把对要删除的元素的引用传递给delete_元素函数,并将其从该函数中删除,因为该函数的名称表示delete_元素不是ask_to_delete_元素

$('a.del')。单击(删除元素())

这就是调用函数delete_element()并希望返回函数

$('a.del').click(delete_element);
(注意缺少的())将设置click处理程序来删除元素。

如何

function deleteElement() {
   return window.confirm("Are you sure you want to delete this?");
}

$('a.delete').click(deleteElement);
或者,如果这是页面的标准行为:

$('a.delete').live('click', function() {
   return window.confirm("Are you sure you want to delete this?");
});

+1、将函数包装在匿名函数中,因为它没有包装在函数中JavaScript引擎可能在函数不存在时解析该函数,通过将其包装在函数中,引擎将仅在单击时解析该函数。当你的页面被完全加载时,obv将是一个开关编辑工作,但是,它不会将结果传递给父函数。我可能必须获取delete_element()的结果,并相应地将true或false返回给父级。将htat切换为“return delete_element()”将修复真/假问题。风格要点:您可以这样做:
return confirm(“…”)完美。比我想象的容易。谢谢。