【问题标题】:Expand / collapse divs using links in jQuery使用 jQuery 中的链接展开/折叠 div
【发布时间】:2014-11-01 04:05:10
【问题描述】:

我查看了其他示例,但无法弄清楚我的示例。我正在尝试使用 jQuery 中的链接展开和折叠 div。我有所有的链接,并设置了一个 onclick 功能。在 onclick 函数中,我正在测试查看链接等于什么,然后确定如何从那里开始。

我坚持的部分是如何让 onclick 函数中的隐藏 div 调用 .hide()

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Expand/Collapse</title>
    <link rel="shortcut icon" href="images/favicon.ico">
    <link rel="stylesheet" href="index.css">
    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
    <script src="subset_expansion.js"></script>   
    <script type="text/javascript">
        var loadFunction = function()
        {
            // gather the links 
            var links = $("a").each(function(){});

            // set an onclick listener 
            links.click(function(evt)
            {
                var linkText = $(this).text(); 

                if (linkText == "Show more")
                { 
                    // get the "hide" divs and expand them
                }
                else if (linkText == "Show less")
                {
                    // get the "hide" divs and collapse them
                }
            })
        }

        $(document).ready(loadFunction); 
    </script>   
</head>

<body>
    <section id="jdom">
        <h1>Murach's JavaScript and DOM Scripting</h1>
        <h2>Book description</h2>
        <div>
            <p>You can read other JavaScript books from start to finish and still not
            know how to develop dynamic websites like you want to. That's because 
            it's DOM scripting that lets you do things like run slide shows, handle image
            rollovers, rotate headlines, provide animation, and more. And it's a subject 
            that's glossed over or ignored in most other books.</p>
        </div>
        <div class="hide">
            <p>But now, you can go from JavaScript beginner to DOM scripting expert in a 
            single book! Fast-paced, professional, and packed with expert practices, our 
            new JavaScript book guides you through each step as you learn how to program 
            sites that enhance the user experience and ensure browser compatibility.</p>
        </div>
        <a href="#" id="">Show more</a>         

        <h2>About the author</h2>
        <div>
            <p>Ray Harris is an expert JavaScript programmer. That will be obvious to you 
            as soon as you review the 20 complete applications that he presents in this 
            book.</p>
        </div>
        <div class="hide">
            <p>Ray Harris is much more than a JavaScript programmer. He has a Master's degree 
            in Computer Science and Artificial Intelligence. He worked on advanced 
            research projects at the Air Force Research Lab while he was in the USAF. 
            He taught information security and web development at the College of 
            Technology in Raleigh, North Carolina. In fact, Ray has been programming 
            and teaching since he was 12 years old.</p>
            <p>So when Ray said he wanted to write for us, it didn't take us long to hire 
            him. Not only did he have the technical skills that we were looking for, 
            but his previous writings showed that he had an uncommon ability to think, 
            write, and teach.</p>
        </div>
        <a href="#">Show more</a>

        <h2>Who this book is for</h2>
        <div>
            <p>Due to our unique presentation methods and this book's modular organization,
            this is the right book for any web developer who wants to use JavaScript effectively.</p>
        </div>
        <div class="hide"> 
            <p>Here's just a partial list of who can use this book:</p>
            <ul>
                <li>Web developers who know HTML and CSS and are ready to master JavaScript.</li> 
                <li>Web developers who program in ASP.NET, JSP, or PHP on the server side and 
                now want to master client-side coding.</li>
                <li>Web developers who have already read 3 or 4 JavaScript or DOM scripting books 
                but still don't know how to do the type of DOM scripting that's required in 
                real-world applications</li>
            </ul>
        </div>
        <a href="#">Show more</a>               

    </section>
</body>
</html>

【问题讨论】:

  • 显示更多链接应该切换什么?它是.hide 元素内的文本,还是应该显示下一项?

标签: javascript jquery html


【解决方案1】:

试试这个

$(document).on('click', 'a' function() {
   $(this).closest('div.hide').toggle();
});

【讨论】:

    猜你喜欢
    • 2011-03-01
    • 2017-02-12
    • 2017-02-12
    • 1970-01-01
    • 2018-12-13
    • 2011-12-16
    • 1970-01-01
    • 1970-01-01
    • 2015-02-15
    相关资源
    最近更新 更多