0

django views.pyから渡されたパラメーターに基づいて表示または非表示にするようにdivを設定する必要がありますが、それを機能させることができませんでした。私のコードは次のようなものです。

体内:

{% if report_type == "detail" %}
    visibility("detail");
{% endif %}

javascriptの場合:

<script type="text/javascript">
    function visibility(reportType) {
        console.log(reportType);
        if(reportType == "detail") {
            $('#executive_summary').style.display = 'none';
        }
    }
</script>

ただし、上記のコードは機能しません。誰かが私にいくつかの提案をすることができますか?ありがとう。

4

3 に答える 3

7

純粋なCSSによる:

        {% if report_type != "detail" %}
            <div style="display: none;">
        {% else %}
            <div style="display: block;">
        {% endif %}
        ...
        </div>

またはJavaScript(jQuery)を使用して:

    {% if report_type != "detail" %}
    <script type="text/javascript">
        $('#executive_summary').hide();
    </script>
    {% endif %}

JavaScript関数による:

    <script type="text/javascript">
        /* If wanted to run when page is loaded. */
        $(function() {
            // Handler for .ready() called. 
            visibility("detail");
        });

        function visibility(reportType) {
            if(reportType == "detail") {
                $('#executive_summary').show();
            }
            else {
                $('#executive_summary').hide();
            }
        }
    </script>
于 2012-04-18T18:56:13.883 に答える
1

問題は、セレクターstyleによって返された jQuery オブジェクトの存在しない属性を使用していることです。'#executive_summary'jQuery オブジェクトには、DOM ノードと同じ属性とメソッドはありません。代わりにこれを試してください:

<script type="text/javascript">
    function visibility(reportType) {
        console.log(reportType);
        if(reportType == "detail") {
            $('#executive_summary').hide();
        }
    }
</script>

これはあなたが望むことを行いますが、絶対に、必然的に表示属性を直接設定する必要がある場合は、その1行を次のように置き換えることができます:

$('#executive_summary').css('display', 'none');

しかし、それは単に使用するほどきれいではありません.hide()

于 2012-04-18T15:15:51.990 に答える
0

関数呼び出しをjavascriptタグに入れる必要があります。代わりにこれを試してください:

<script type="text/javascript">
{% if report_type == "detail" %}
    $('#executive_summary').toggle();
{% endif %}
</script>
于 2012-04-18T15:11:52.447 に答える