fire

Module

Methods

event.fire()
Boolean fire ( selector , eventType [ , domEvent ] )
执行符合匹配的 dom 节点的相应事件的事件处理器(并冒泡)和默认行为.
Parameters:
  • selector (string|HTMLCollection|Array<HTMLElement>) – 字符串表示 css3 选择器
  • 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="//g.alicdn.com/kissy/k/1.4.7/seed.js" data-config="{combine:true}"></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>
    KISSY.use('core', function (S) {
        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>