gpt4 book ai didi

javascript - 准备在 DOM 上执行 JQuery 函数...从模块内部吗?

转载 作者:行者123 更新时间:2023-11-28 12:45:22 25 4
gpt4 key购买 nike

我有一些实验性的输入检查 Javascript:

$(function(){
var check_stuff = function(elem){
//...code to check stuff
};

// grab every input element with a checkable class
$('input.checkable').each(function(i) {
$(this).click(function(){
if check_stuff(elem) {
$(this).submit(); // submit if passes checks
}
};
});
});

这有效。然而,我担心这会污染全局空间。因此,如果 'check_stuff' 函数是在 jQuery 中的某处定义的,或者是由另一个共享 $ 的模块定义的,那么我实际上只是覆盖了它。这是正确的吗?

如果我删除第一行的 $:

(function(){

然后我相信我正在创建一个标准的javascript匿名函数,它有效地隔离了check_stuff。然而,:

$(this).click(function(){

...不再在 DOM 就绪时执行(因为它在评估后立即执行)。我已经尝试将其包装在 jQuery(document) 中。准备无效。

创建在就绪时执行代码块的模块的正确方法是什么?

最佳答案

您可以将代码包装在 self-executing anonymous function 中。该代码将运行,并且该函数中包含的所有变量将仅存在于该函数的本地范围内。函数定义后的()将立即执行该函数。

格式:

(function(){

})();

将其放入 dom 中,然后就可以开始了。

$(function(){

(function(){
//your code for the module
})();

});

示例:http://jsfiddle.net/VZ2ay/2/

关于javascript - 准备在 DOM 上执行 JQuery 函数...从模块内部吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8248974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com