使用Javascript对象字面量存储变量
Storing variables with Javascript Object Literals
我正在使用Paul Irish的基于dom的路由模式(http://paulirish.com/2009/markup-based-unobtrusive-comprehensive-dom-ready-execution/)来组织我的代码。
我的问题是:我如何存储/回调变量,我想在整个网站使用这种方法?
通常我会这样做:
var $button = $('.button');
var $link = $('.link');
我如何将上面的变量存储集成到下面的模式中?
NS = {
common : {
init: function(){
$button.doSomething();
}
},
home : {
init: function(){
$link.doSomethingElse();
}
},
utils : {
init: function(){}
}
}
UTIL = {
fire : function(func,funcname, args){
// indicate your obj literal namespace here
var namespace = NS;
funcname = (funcname === undefined) ? 'init' : funcname;
if (func !== '' && namespace[func] && typeof namespace[func][funcname] == 'function'){
namespace[func][funcname](args);
}
},
loadEvents : function(){
// get body id
var bodyId = document.body.id;
var classNm = document.body.className;
// fire up common
UTIL.fire('utils');
UTIL.fire('common');
//fire up page specific js
UTIL.fire(bodyId);
UTIL.fire(bodyId,classNm);
}
};
// kick it all off here
$(document).ready(UTIL.loadEvents);
除非我遗漏了什么,否则您应该能够执行以下操作。
NS = {
domElements: {
$button: null,
$link: null
},
common : {
init: function(){
if (NS.domElements.$button === null) {
NS.domElements.$button = $('.button');
}
var $button = NS.domElements.$button;
$button.doSomething();
}
},
home : {
init: function(){
if (NS.domElements.$link === null) {
NS.domElements.$link = $('.link');
}
var $link = NS.domElements.$link;
$link.doSomethingElse();
}
},
utils : {
init: function(){}
}
}
相关文章:
- 使用javascript存储变量的最安全方式
- 如何在Javascript中为不同的页面访问存储变量
- Javascript 会话存储变量未正确保存
- 服务中的角度存储变量
- 在文本字段中显示保存的本地存储变量 - javascript
- 带有本地存储变量的 jQuery 循环不起作用
- 单击“在时间存储变量”按钮,以便在触发 ajaxComplete 事件时使用
- 页面刷新后的 Javascript 存储变量
- 如何存储变量中单击的子项
- 如何获取不同选项卡的实例,以便我可以存储变量/执行特定于各个选项卡的操作
- 如何使用 jquery 使用本地存储变量设置输入字段
- 无法检索本地存储变量
- 显示本地存储变量
- HTML5会话存储:变量未存储在<李>onclick属性
- 在HTML或Javascript中,如何为每个人存储变量
- SeleniumIDE替换存储变量中的字符串
- JQuery设置本地存储变量
- 在服务AngularJS中存储变量
- 如何使用存储变量和随机数与硒ide
- 计算器Javascript/Jquery存储变量