如果你这样做,你会感觉好一点吗?
$('#start_date').data().dateTime.myFunc()
或者,您可以扩展 jQuery 以使您的生活更轻松,或者让 jQuery 以您喜欢的方式工作
在这里,我为您量身定制了一个小插件,以便您可以传入一个点符号字符串来检索您想要的数据。在这种情况下,它返回一个函数,所以我们可以直接调用它。
演示:http: //jsfiddle.net/terryyounghk/8tWLn/
插件代码
// Small plugin
$.fn.myData = function (namespace) {
var namespaces = namespace.split('.'),
data = this.data();
$.each(namespaces, function (i, that) {
data = data[that];
});
return data;
}
使用示例
// set your data
$('#start_date').data('dateTime', {
bacon:5,
myFunc: function() {
alert('mmm, bacon')
}
});
// call your function, note the dot notation
$('#start_date').myData('dateTime.myFunc')(); // better?
这里的哲学是,如果我们不断重复一些事情,那么一定有一些愚蠢的事情发生。有没有办法扩展 jQuery 让我的生活更轻松?你来做法官。
就个人而言,我不喜欢这个插件。如果我正在编写单行代码,我更喜欢我的第一个建议。但谁知道呢?你可能喜欢后者。