3

私が達成したいことは次のとおりです。

  • テンプレートがレンダリングされた後、フォーム送信にバインドしてスピナーを追加します
  • テンプレートがレンダリングされる前に、スピナーが存在する場合は削除します

ハンドルバーのレンダリングをバインドする方法があれば、簡単に実現できると思います。それが可能であるという手がかりはまだ見つかっていません。

私がこれを解決しようとしている方法は正しい方法ではないかもしれないので、他の方法を自由に提案してください。

これは、ルーティングにDavisを使用し、DOM 操作に jQuery を使用する単一ページのアプリです。

4

1 に答える 1

2

フォーム送信へのバインディングの最初の問題は、jQuery のon handler で解決できます$(document).on("submit", "form", function(event) { ... });。これは、フォームが DOM に追加されるたびに、すべてのフォームで機能します。

レンダリング部分については、 .html()呼び出しをラップしてイベントをトリガーする小さな jQuery プラグインを作成します。次に、コンテンツ要素をバインドして、それをリッスンします。例$("#content").bind("render", function() { /* REMOVE SPINNER */ });$("#content").render(/* WHATEVER IT TAKES TO GET HTML OUT OF HANDLEBARS */);. そして最後にプラグイン:

(function($) {
  $.fn.render = function(htmlString) {
    var selector = this;
    selector.html(htmlString);
    selector.trigger("render");
  };
})(jQuery);

後者のケース (ハンドルバーなし) を示すためにフィドルを作成しました。

于 2012-04-18T14:12:14.460 に答える