左上から「StackExchange」という通知をクリックすると、SOが新しいページを開き、特定のセクションにジャンプして、そのセクションを黄色で強調表示してフェードアウトすると、SOの効果が気に入っています。
現在、長いウェブサイトの下部にコメントフォームがあります。コメントの投稿が検証に失敗した場合、jQueryを使用してフォームにスクロールし、SOと同じ黄色のハイライト効果を実行します。
これが私の(完全に機能する)コードです:
$(document).ready(function() {
{% if focus %}
// Focus
$('html, body').animate({scrollTop: $('#{{ focus }}').offset().top }, 'slow')
$('#{{ focus }}').effect("highlight", {}, 3000)
{% endif %}
})
私はこのコードを持っているbase.html
ので、すべてのテンプレートが。というテンプレート変数をチェックしますfocus
。は、黄色のハイライト効果を実行するためののfocus
を保持する単純な文字列です。id
<div>
ご覧のとおり、これは少しハッキングされているように感じます。Djangoのfocus
を使用して辞書を渡す必要があります。render()
views.py
私が本当にやりたいのは、それをGET
変数として渡すことです。のようなものhttp://www.example.com/orders/2/?focus=comment_form
。次に、 Javascriptを使用してその変数を取得GET
し、ハイライト効果を実行できます。GET
しかし、を使用して変数を渡す方法がわかりませんrender()
。
現在、私のようにrender()
見えます:
dictionary = get_orders_detail_dictionary(order=order, user=request.user, comment_form=form)
dictionary['focus'] = 'comment_form'
return render(request, 'doors/orders/detail.html', dictionary)
私がaを使いたい理由GET
は、「パーマリンク」オプションのようなものです。