JSer对象 事件/缓存保持机制
描述:
在对DOM操作(其中包括DOM位置的移动,复制,新增等)时,JSer会自动复制原DOM对象上已绑定的事件和用户data缓存数据到新的DOM对象上, 因此,使用JSer,您不必再为移动(或复制)过后的新DOM元素重复地绑定事件。
对于这种新特性,我们暂且叫做DOM对象的事件与缓存保持(详情参见下面的示例代码)
适用版本:
JSer-2.7及后续版本开始,以下方法均支持事件/缓存保持:
html(html), append(content), appendTo(content) , prepend(content) , prependTo(content) , after(content, isClone) , afterTo(content, isClone) , before(content, isClone) , beforeTo(content, isClone) , replace(content) , replace(content, fmtFn)
示例:
以下代码演示了JSer的事件保持特性:
html代码:
<div id="div1">
    <input type="button" id="btn1" value="click1"/>
</div>
<div id="div2"> </div>
js代码:
JSer("#btn1").click(function () {
    alert('clicked.');
});
JSer("#div2").html(JSer("#div1").html());// 注意这行代码是普通HTML填充
代码分析:
  大家注意看一下上面的JS代码,我们先为div1中的按钮绑定了一个click事件,当单击这个按钮时弹出一个alert;
然后再通过JSer的html方法,将div1中的内容,直接复制给了div2。
  对于JSer2.7之前的版本,点击div2中的那个按钮,并不会弹出alert。
  而自JSer2.7及后续版本,则会自动复制这个click事件给div2中的那个button. 这样我们就不必再为div2中的那个按钮绑定事件了,是不是很方便呢?
总结:
  相信大家看了上面的代码,已经明白什么叫做事件保持了。 同样地,在原DOM元素上通过JSer对象的data(name, value)方法绑定的自定义缓存数据, 也会自动保持,但如果您在复制或移动元素时,不想保持原DOM对象的事件(或data缓存)又怎么办呢?那就使用JSer对象的off(), removeData()等方法来移除新对象上保持的事件或缓存吧。