38-讨论
4.9.3 讨论
在本秘诀中,使用 .data() 方法管理对数据的访问,提供数据和标记的清晰分离。
使用 date() 方法的其他好处之一是隐式触发目标元素上的getData和setData事件,假设有如下HTML:
<div id="time" class="updateTime"></div>
可以附加一个setData事件处理程序分离不同的关注点(模式和视图),这个处理器方法有三个参数( event 对象,数据 key (键值)和数据 value (值)):
// 监听新数据
$(document).bind('setData', function(evt, key, value) {
if ( key == 'clock' ) {
$('.updateTime').html( value );
}
});
之后,每当在文档元素上调用 .date() 都会触发 setData 事件:
//在类为'updateTime'的所有元素上更新'time'数据
setInterval(function() {
$(document).data('clock', (new Date()).toString() );
}, 1000);
这样,在前一个秘诀中,每隔1秒(1000毫秒)更新document对象上的 clock 数据属性,触发绑定到 document 的setData事件,更新当前时间的显示。