簡體   English   中英

使用 Django 中的按鈕關閉所有 forms

[英]Close all forms with a button in Django

我在 Django 3.0 中構建了一個線程評論系統(類似 Reddit)
一條評論可以有盡可能多的回復。 對於每條評論,其下方都會顯示一個回復表單。 現在,如果我不隱藏 forms,頁面看起來很糟糕,文本區域雜亂無章。

我需要以下內容:“回復”按鈕,單擊可以顯示/隱藏回復表單。

這是我嘗試過的:

  1. 向 forms 添加了 class .replyForm
    在隱藏按鈕中添加了 class .hideBtn
    二手 JQuery:
  $(".hideBtn").click(function(){
        $(".replyForm").toggle();
    });

現在,這工作正常,但單擊回復按鈕會同時打開所有 forms。
這是預期的,因為屬於每種形式的 class 是相同的。

  1. 使用 Django 的模板標簽,我設法使每個表單和按鈕的 id 都是唯一的。
    示例: id = "replyForm{{comment.id}}"如果comment.id = 123 ,則呈現為replyForm123
    但我無法以任何有效的方式使用它。
    我無法訪問 for 循環(顯示評論)之外的 id。
    我嘗試在循環中添加 JQuery 腳本,並創建了 2 個變量,一個用於按鈕的 id,另一個用於表單的 id。
    但是隨着循環的執行,變量會相應地改變,最后它們只存儲最后一條評論的 id,使所有其他切換按鈕無用。

我覺得我把事情復雜化了太多,我對 JS 和 JQuery 很陌生,我之所以使用它們,是因為我找不到基於 pythonic/django 的方法來執行此操作。

有沒有更簡單、更優雅的方法來做到這一點? 任何幫助表示贊賞

編輯1:
我找到了一個非常簡單的解決方案,使用Bootstrap 4 的崩潰 class ,但仍然想知道 JQuery 這樣做的方式。

嘗試這個:

$(".replyForm").click(function(){
    $(this).toggle();
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM