2

DOM に変更を加えたくない場合、一部の DOM ノードからイベントをサブスクライブするにはどうすればよいですか? cyclejsまたはmotorcyclejsでこのようなことを達成するにはどうすればよいですか?

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

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

更新: main 関数を実行する前に DOM ツリーが既に終了しています:

<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 に答える