免责声明:我正在尝试使用闭包,因为我被告知这是一个很好的做法(我明白 - 没有变量可以用于其他功能等)但我不是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()
,但是当它不能正常工作时我会尝试一些事情。
答案 0 :(得分:3)
您定义了一个函数表达式,但您没有调用它。添加括号:
(function(){
$("#job-titles-list a").click(function(e){
e.preventDefault();
return false;
});
})();
请注意,如果您在IIFE内没有更多代码,那么由于您没有添加任何变量,这样做完全没用。
答案 1 :(得分:1)
您定义了机箱,但尚未调用它:
(function(){
$("#job-titles-list a").click(function(e){
e.preventDefault();
return false;
});
})(); // < -- Note the () here.