JavaScript 自调用函数闭包无法正常工作

标签 javascript jquery

免责声明:我正在尝试使用闭包,因为我被告知这是一种很好的做法(并且我理解这一点 - 不要在其他函数中使用变量等),但我并不 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 中没有更多代码,它完全没用,因为你没有添加任何变量。

关于JavaScript 自调用函数闭包无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25016299/

相关文章:

javascript - 如何轻松地为 ActionCable 发送 DOM 元素?

javascript - DataTables 导出到 Excel 下载 zip 文件

Javascript仅在窗口处于焦点时才执行计时器函数?

jquery - 将一个类添加到无限循环的随机 div 集中

javascript - jQuery 在使用动画功能时为 div 添加背景

javascript - 当两个 View 相交时如何添加事件监听器?

javascript - 为什么年份返回为 NaN?

javascript - 具有自动切换功能的 jQuery Tabs

javascript - 使用 HTML 同时调用两个 javascript 文件

javascript - JQuery 设置 json 值 : path provided as string