免责声明:我正在尝试使用闭包,因为我被告知这是一种很好的做法(并且我理解这一点 - 不要在其他函数中使用变量等),但我并不 100% 理解我的意思正在做! 99% 的时候它们都工作得很好。
我有以下功能:
(function(){
$("#job-titles-list a").click(function(e){
e.preventDefault();
return false;
});
});
但是当我点击任何链接时,我就会被带到他们的href
。如果我将函数更改为:
// (function(){
$("#job-titles-list a").click(function(e){
e.preventDefault();
return false;
});
// });
我的问题是如何使闭包工作/我不应该使用闭包来做我正在做的事情吗?
(我知道我不需要 return false
和 e.preventDefault()
但当它不起作用时我尝试了一些方法)
最佳答案
您定义了一个函数表达式,但没有调用它。添加括号:
(function(){
$("#job-titles-list a").click(function(e){
e.preventDefault();
return false;
});
})();
请注意,如果 IIFE 中没有更多代码,它完全没用,因为你没有添加任何变量。
关于JavaScript 自调用函数闭包无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25016299/