www.webdeveloper.com
Results 1 to 6 of 6

Thread: Image button link to another div in same page

  1. #1
    Join Date
    Jul 2013
    Posts
    56

    Image button link to another div in same page

    I used this example again.

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <script language="javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js" type="text/javascript"></script>

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Test</title>

    <script type="text/javascript">
    $(document).ready(function() {
    $('.hidable').hide();

    $('.link').each(function(){

    $(this).toggleClass("active").next();
    $(this).click(function(){
    var show=$(this).attr('rel');
    $('.hidable').slideUp('slow');
    $(show).slideDown('fast');
    });

    });
    });

    </script>
    </head>
    <body>

    <ul>
    <li class='link' rel='#div1'><a href="#">1</a></li>
    <li class='link' rel='#div2'><a href="#">2</a></li>
    <li class='link' rel='#div3'><a href="#">3</a></li>
    <li class='link' rel='#div4'><a href="#">4</a></li>
    <li class='link' rel='#div5'><a href="#">5</a></li>
    </ul>

    <div id="boxes">
    <div class='hidable' id='div1'><table><tr><td><img src="button.jpg"></td></tr></table></div>
    <div class='hidable' id='div2'>div 2</div>
    <div class='hidable' id='div3'>div 3</div>
    <div class='hidable' id='div4'>div 4</div>
    <div class='hidable' id='div5'>div 5</div>
    </div>

    </body>
    </html>

    and I added button in div1 content. My problem is to link that button to another div in this html file. For example, when I click the button, it will open the div2 content. I've tried using <a href="#div2"><img src="button.jpg></a> but not working. How should I do this?

  2. #2
    Join Date
    Feb 2012
    Location
    Tallahassee, FL
    Posts
    280
    Here is a modification of your code that should have the desired result. Note that this is one of many ways to do this. Also, I changed the <!DOCTYPE> tag. The one I use is for HTML5.
    HTML Code:
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <script language="javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js" type="text/javascript"></script>
    
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title>Test</title>
    
        <script type="text/javascript">
            $(document).ready(function() {
                $('.hidable').hide();
    
                $('.imgbtn').click(function(){
                    target = $(this).attr('data-target');
                    $(".link:nth-child(" + target + ")").click();
                });
    
                $('.link').each(function(){
    
                    $(this).toggleClass("active").next();
                    $(this).click(function(){
                        var show=$(this).attr('rel');
                        $('.hidable').slideUp('slow');
                        $(show).slideDown('fast');
                    });
    
                });
            });
    
        </script>
    </head>
    <body>
    
    <ul>
        <li class='link' rel='#div1'><a href="#">1</a></li>
        <li class='link' rel='#div2'><a href="#">2</a></li>
        <li class='link' rel='#div3'><a href="#">3</a></li>
        <li class='link' rel='#div4'><a href="#">4</a></li>
        <li class='link' rel='#div5'><a href="#">5</a></li>
    </ul>
    
    <div id="boxes">
        <div class='hidable' id='div1'><table><tr><td><a href="#div2" data-target="2" class="imgbtn"><img id="imgbtn" src="images/1.png"></a></td></tr></table></div>
        <div class='hidable' id='div2'>div 2</div>
        <div class='hidable' id='div3'>div 3</div>
        <div class='hidable' id='div4'>div 4</div>
        <div class='hidable' id='div5'>div 5</div>
    </div>
    
    </body>
    </html>

  3. #3
    Join Date
    Jul 2013
    Posts
    56
    It works. Thank you. But I have problem when I click that button, it will go to this url (like in picture attached)
    Picture 1.png

    The problem is, when I refresh that page, it will blank. How should I do, so that when I refresh it will not blank and maintain on that page?

  4. #4
    Join Date
    Feb 2012
    Location
    Tallahassee, FL
    Posts
    280
    Add this to the end of your javascript:
    Code:
    hashtagval = window.location.hash;
    
                if(hashtagval.length > 0){
                    target = hashtagval.replace("#div","");
                    $(".link:nth-child(" + target + ")").click();
                }

  5. #5
    Join Date
    Jul 2013
    Posts
    56
    <script type="text/javascript">
    $(document).ready(function () {
    $('.hidable').hide();

    Like this?

    $('.imgbtn').click(function(){
    target = $(this).attr('data-target');
    $(".link:nth-child(" + target + ")").click();
    });

    $('.link').click(function () {
    $(this).toggleClass('active')
    $('.link').not(this).removeClass('active')
    var show = $(this).attr('rel');
    $('.hidable').not(show).slideUp('fast');
    $(show).slideDown('fast');
    return false
    }).eq(2).click()
    });

    hashtagval = window.location.hash;

    if(hashtagval.length > 0){
    target = hashtagval.replace("#div","");
    $(".link:nth-child(" + target + ")").click();
    }

    </script>

  6. #6
    Join Date
    Feb 2012
    Location
    Tallahassee, FL
    Posts
    280
    No, I should have been more specific. It needs to be within the $(document).ready(function(){})

    Like this:
    Code:
    <script type="text/javascript">
            $(document).ready(function () {
                $('.hidable').hide();
    
                    $('.imgbtn').click(function(){
                        target = $(this).attr('data-target');
                        $(".link:nth-child(" + target + ")").click();
                    });
    
                $('.link').click(function () {
                    $(this).toggleClass('active')
                    $('.link').not(this).removeClass('active')
                    var show = $(this).attr('rel');
                    $('.hidable').not(show).slideUp('fast');
                    $(show).slideDown('fast');
                    return false
                }).eq(2).click();
    
                hashtagval = window.location.hash;
    
                if(hashtagval.length > 0){
                    target = hashtagval.replace("#div","");
                    $(".link:nth-child(" + target + ")").click();
                }
    
            });
    
    
        </script>

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles