私はシングル ページ アプリに取り組んでおり、かなりの数の DOM ノード構築関数が、作成したオブジェクトへの参照を返します。これが私が意味することの例です:
if (!document.getElementById('playlistHeader')) {
appView.buildKit.playlist.headerWrap();
}
// construct element
var secondaryBtnsWrap = document.createElement("div");
secondaryBtnsWrap.id = "playlistSecondaryBtnWrap";
secondaryBtnsWrap.className = "clearright right";
// attach it
document.getElementById('playlistHeader').appendChild(secondaryBtnsWrap);
// return reference to dom node
return secondaryBtnsWrap;
ビューを切り替えるときにノードを破棄して再作成するのは冗長だと考えたので、一部のノード (サイトのサブセクション) のコンテンツを消去できるようにするための作業を開始しました。
// build wipe function
secondaryBtnsWrap.wipe = function(){
// do custom wiping here
}
アイデアは、UI の一部を「リセット」し、ビュー間の違いを再構築することです。たとえば、どうしても必要なボタンがあった場合、ワイプ機能では削除されません。そうすれば、同じ要素を作成する余分な手間が省けます。
場合によっては、ノードへの参照を取得してアタッチされたカスタム関数をトリガーする方がはるかに簡単ですが、それが実際に良いアイデアなのか、それとも単に良いアイデアのように見えるだけなのか疑問に思っていました (しかしそうではありません)。
TL;DR バージョン
DOMノードにJavascript関数を与えるのは良い考えですか?