1

次の例では、現在デフォルトで表示されている 'divToToggle' DIV を非表示にしてページを開始するにはどうすればよいですか? 「display:none;」は使いたくない アクセシビリティ上の理由から、スクリプトの外に。起動時にスクリプト内で「divToToggle」を非表示にするにはどうすればよいですか? ありがとう。

            <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
            <html>
            <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
            <title>JavaScript hide and show toggle</title>
            <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
            </head>
            <body>
            <script>
            function toggleAndChangeText() {
                 $('#divToToggle').toggle();
                 if ($('#divToToggle').css('display') == 'none') {
                      $('#aTag').html('[+] Show text');
                 }
                 else {
                      $('#aTag').html('[-] Hide text');
                 }
            }
            </script>
            <br>
            <a id="aTag" href="javascript:toggleAndChangeText();">[-] Hide text</A> 
            <div id="divToToggle">Content that will be shown or hidden.</div>
            </body>
            </html>
4

2 に答える 2

0

すでに使用しているため、jQuery を使用するだけです (この方法では、非 JS ユーザーが要素を表示するのを妨げません)。

function toggleAndChangeText() {
     $('#divToToggle').toggle();
     if ($('#divToToggle').css('display') == 'none') {
          $('#aTag').html('[+] Show text');
     }
     else {
          $('#aTag').html('[-] Hide text');
     }
}

$('#divToToggle').hide();
// the rest of your script(s)...

また、トグル機能のマイナー アップデート:

function toggleAndChangeText() {
    // because you're accessing this element more than once,
    // it should be cached to save future DOM look-ups
    var divToToggle = $('#divToToggle');
    divToToggle.toggle();
    // You're not changing the HTML, just the text, so use the
    // appropriate method (though it's a *minor* change)
    $('#aTag').text(function() {
        // if the element is visible change the text to
        // '...hide...'; if not, change the text to '...show...'
        return divToToggle.is(':visible') ? '[-] Hide text' : '[+] Show Text';
    });
}

参考文献:

于 2012-11-15T22:19:09.490 に答える
0

document.ready 関数内で hide 関数を使用するだけです

$(function(){
     $('#divToToggle').hide();
});
于 2012-11-15T22:19:10.757 に答える