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(“…”)代码>完美。比我想象的容易。谢谢。