2

如果我不想在 DOM 中产生更改,如何从某些 DOM 节点订阅事件?我怎样才能在cyclejs或motorcyclejs中实现这样的目标?

function main({DOM}) {
   DOM.select('button').events('click').forEach(e => console.log(e))
   return {}
}

run(main, {DOM: makeDOMDriver('#app')})

更新: DOM 树在运行 main 函数之前已经退出:

<div id="app">
  <button>Click</button>
</div>

上面的例子不起作用,事件监听器没有附加到 DOM 节点。

4

1 回答 1

0

如果您想要查看 DOM 点击的能力,这里应该演示您的设置应该是什么样子:

const view = () => {
  return div('app',[
    button('Click')
  ]);
};

const intent = ({DOM}) => {
  const intent$ = DOM.select('button').events('click').map(e => console.log(e));
  return intent$;
};

const main = (sources) => {
  const intent$ = intent(sources);
  const view$ = Rx.Observable.just(view);
  return {
    DOM: view$

  };
};

run(main, {DOM: makeDOMDriver('#app')})
于 2016-02-14T00:44:05.403 回答