fire

Module

Methods

event.fire()
Boolean fire ( selector , eventType [ , domEvent ] )
执行符合匹配的 dom 节点的相应事件的事件处理器和默认行为.
Parameters:
  • selector (string|HTMLCollection|Array<HTMLElement>) – 字符串格式参见 KISSY selector
  • eventType (string) – 包含一个或多个事件名称的字符串, 多个事件名以空格分开
  • domEvent (object) – 模拟原生事件的一些属性值信息
Returns:

如果其中一个事件处理器返回 false , 则返回 false, 否则返回最后一个事件处理器的返回值

Event.on 绑定的事件处理器可以被用户触发的原生事件调用. 但是这些事件处理器也可以使用 fire 手动调用. 调用 fire() 和用户触发导致的处理器调用调用是一样的顺序.

Event.on('#foo','click',function(){
    alert(DOM.text(this));
});

Event.fire('#foo','click');

Demo

点击第二个按钮手动触发第一个按钮的点击, 简便起见使用 node 接口.

<!DOCTYPE html>
<html>
<head>
  <style>

button { margin:10px; }
div { color:blue; font-weight:bold; }
span { color:red; }
</style>

  <script src="http://a.tbcdn.cn/s/kissy/1.2.0/kissy.js"></script>
</head>
<body>
  <button class='first'>Button #1</button>
<button class='last'>Button #2</button>
<div><span class='first'>0</span> button #1 clicks.</div>

<div><span class='last'>0</span> button #2 clicks.</div>
<script>
    var $=KISSY.Node.all;
    
    $("button.first").on('click',function () {
        update($("span.first"));
    });
    
    $("button.last").on('click',function () {
        $("button.first").fire('click');        
        update($("span.last"));
    });
    
    function update(j) {
        var n = parseInt(j.text(), 10);
        j.text(n + 1);
    }
</script>

</body>
</html>