JavaScript自调用函数闭包不能正常工作

JavaScript self invoking function closure not working correctly

本文关键字:常工作 工作 不能 调用 函数 闭包 JavaScript      更新时间:2023-09-26

免责声明:我正在尝试使用闭包,因为我被告知它们是一种很好的实践(我理解这一点-没有变量在其他函数中使用等),但我不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 falsee.preventDefault(),但我正在尝试一些事情,当它不工作)

您定义了一个函数表达式,但不调用它。添加括号:

(function(){
    $("#job-titles-list a").click(function(e){
        e.preventDefault();
        return false;
    });
})();

请注意,如果您在IIFE中没有更多的代码,那么它是完全无用的,因为您没有添加任何变量。

您已经定义了这个框,但是还没有调用它:

(function(){
    $("#job-titles-list a").click(function(e){
        e.preventDefault();
        return false;
    });
})(); // < -- Note the () here.