ハイブリッドアプリでシステム開発:JSでボタンへのイベント登録はloadの後じゃ無いとだめ

Posted on Posted in 趣味的なIT・ネットの話題

最近流行のハイブリッドアプリの開発に挑戦してみようと思い、実質二択であるmonacaとionicを試してみることに強いました。まずはmonacaから。

HTML5+JavaScriptを標榜するだけあって、開発自体はHTML5+JavaScriptそのまんまな感じですね。HTMLで書いてJSのイベントドリブンで記述していきます。

ここでハマったのが、HTML要素にイベントを登録するには、ページの読み込み、または少なくともDOMツリーの構築が完了してからで無いといけないということ。以前にNodeでシステムを作っていたときには意識していたはずなんですが、すっかり忘れていました。というかこのあたりは公式チュートリアルとか公式本で言及しておいて欲しいところです。甘い?

内容は公式のサンプルのOnsen UIの最小限のテンプレに記述を加えたものです。

windowのloadイベントが発火した後に実行したaddEventLinsterとかJQueryのonは有効なようで、関数が登録されちゃんと実行されます。一方スクリプト読み込み時に実行されるものは登録されませんでした。

HTML側のonclickで登録した関数については実行されるのですが、これだと関数名を記述しないといけなくなり、JS側のロジックの一部をHTML側に持ち込むことになり美しくないと思います。動的にHTMLを生成してJSの関数を実行する際にも問題が出そうなので、できるだけloadをきっかけに登録する方法で行くことにします。


Facebooktwittergoogle_pluspinterestlinkedinmail
納得したらすぐにシェア!

One thought on “ハイブリッドアプリでシステム開発:JSでボタンへのイベント登録はloadの後じゃ無いとだめ

Comments are closed.