来自许诺的分享

在YUI2中,我们没有官方的时间模拟机制,但是YUI3带给了我们这个便利,使我们可以通过模拟来对代码进行最直接的重用:

我们可以很方便的模拟用户的以下行为:
  • click
  • dblclick
  • mousedown
  • mouseup
  • mouseover
  • mouseout
  • mousemove
  • keyup
  • keydown
  • keypress
  • blur
  • change
  • focus
  • resize
  • scroll
  • select

一个简单的例子:
YUI().use('node-event-simulate', function(Y) { 
     Y.one("body").simulate("click");}
);
这样就模拟点击了body的click事件。
当然你还可以附加其它按键,例如模拟shift键同时按下点击效果。
Y.one("body").simulate("click", { shiftKey: true });
同理alt键也是如此
node.simulate("click", { altKey: true} );
更方便的是你可以指定源
node.simulate("mouseout", { relatedTarget: document.body });
还有坐标
node.simulate("mousedown", { clientX: 100, clientY: 100 });
对于ui层面的改变它也同样敏感

YUI().use('node-event-simulate', function(Y) {
  var node = Y.one("#myInput");
  // 模拟节点选择改变
  node.simulate("change");
  // 模拟节点被选中
  node.simulate("select");
}
);

Leave a Reply