如何在模块模式中使用JQuery对象
How to use JQuery-Object in Module Pattern
我在模块模式中使用JQuery。我有一个关于使用JQuery对象的问题。
参见以下示例:
var myFeature = {
'config' : {
'container' : $('#myFeature'),
'init' : function(config) {
myFeature.config.container.css('display', 'none');
}
}`
为什么上面的例子不起作用?在模块模式中使用Jquery对象时,最佳实践是什么?
假设我在正确的位置添加了缺失的}
(我还在末尾添加了分号,我不建议依赖自动分号插入):
var myFeature = {
'config' : {
'container' : $('#myFeature'),
}
'init' : function(config) {
myFeature.config.container.css('display', 'none');
}
};
那么我能理解为什么它不起作用的唯一原因是,如果这个代码在元素存在之前执行。因此,container
属性最终引用了一个jQuery集,其中没有任何内容,因为在初始化该属性时,没有id
"myFeature"
元素。
解决方案是在您知道元素存在时初始化container
属性,或者根本不使用container
属性,因为通过id
查找元素非常快。
如果元素在页面的主标记中,请确保包含上述代码的script
标记在该标记之后。通常的建议是将script
标记放在页面的最后,刚好在关闭的</body>
标记之前,这样在脚本代码运行时,页面标记中的所有元素都存在。
请参阅以下更改:
var myFeature = {
'config' : {
'container' : $('#myFeature') // 1: removed comma
}, // 2: added comma and right curly brace
'init' : function(config) {
myFeature.config.container.css('display', 'none');
}
}; // 3: added semi-colon
- 在旧版本的IE中,额外的逗号有时会导致错误
- 键/值对在散列中用逗号分隔
- 语句末尾需要分号。"need"使用松散,但安全总比抱歉好
相关文章:
- 将jQuery对象传递到setTimeout递归函数中
- jQuery:对象不是函数
- jQuery对象从html表中查询为两个一维数组,用于Chartist图表
- 如何从jQuery对象文本正确调用服务器端ASP.NET并将数据返回给jQuery
- 检查对象是否基于jquery对象
- 如何在几个jQuery对象上调用jQuery函数
- 将Javascript函数链接到返回jQuery对象的jQuery函数
- 如何正确地将jquery插件添加到webpack中的jquery对象中
- 用jquery post发送jquery对象
- 如何创建jQuery插件来缓存jQuery对象,如下所示
- 从主体分离时,jQuery对象scrollTop(值)
- 创建jQuery对象时出现问题
- 获取随机jQuery对象的属性
- 在 javascript