1

重複の可能性:
上書きするのではなく、{% ブロック %} に追加できますか?

簡単に言うと、大量の jQuery に依存する Django アプリを手に入れました。1 つのページに複数の $(document).ready 関数があると、多くの問題があります (たとえば、クリック イベントが複数回発生するなど)。これを行う方法は、フッターに表示されるコンテンツ ブロックを連結することだと思いますが、これを達成する方法の例を見つけることができないようです。

コミュニティは、Django テンプレートで単一の $(document).ready 関数のコンテンツを動的に作成/拡張することをどのように提案しますか?

アップデート

最初のコメントで提案されている {{ block.super }} は、テンプレートから呼び出されたときに機能しますが、 $(document).ready( に追加できるようにする必要があるさまざまなテンプレート タグも使用しています。 )。包含タグ内から呼び出されると、Django は次のような AttributeError 例外を返します: 'BlockNode' オブジェクトには属性 'context' がありません。

4

1 に答える 1

0

いくつかのオプションがあり、どちらを選択するかは、必要なコードを選択するためのロジックの複雑さ、コードブロックの相互依存性、およびページマークアップとの関係によって異なります。コードのチャンクを包含タグとして保存し、それらのタグをフッタースクリプトセクションまたは単一$(document).readyセクションのいずれかで呼び出すことができます。または、 Require.jsのようなものを使用することもできます。

于 2012-12-04T18:53:01.013 に答える