Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Toggle onClick jquery

I am new to web-designing. I have this sample code which toggles a div when we click anywhere on the window.

<!doctype html>
   <html lang="en">
     <head>
       <meta charset="utf-8">
            <title>slide demo</title>
               <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css">
                   <style>
                     #toggle {
                     width: 100px;
                     height: 100px;
                     background: #ccc;
                     }
                   </style>
                   <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
                   <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js">                       </script>
       </head>
       <body>

       <p>Click anywhere to toggle the box.</p>
       <div id="toggle"></div>

       <script>
          $( document ).click(function() {
          $( "#toggle" ).toggle( "slide" );
          });
       </script>

    </body>
</html>

How can I add an image and change the image for show and hide? I have an '>' icon. When I click on it, div should appear and '>' should change to '<'

like image 535
Anusha Honey Avatar asked Sep 11 '26 19:09

Anusha Honey


2 Answers

$('#buttonid').on('click', function () {
    $('#toggle').toggle('slide');
});

add a button with an unique id like this

<button id="buttonid">click to toggle </button>
like image 160
Anton Avatar answered Sep 13 '26 09:09

Anton


I think you can do as follow

<img src='source:<'  id='imageid' data-othersource='source:>' />

You can declare an image like that with the two sources and then switch the src in jQuery.

//wait for the document to be fully loaded to execute
$(document).ready(function(){
  //use event delegation
  $(document).on('click','#imageid',function(){

    var $this= $(this);
    $('#toggle').toggle('slide',function(){
      //swap src of the image on toggle is completed
      var imgsrc = $this.attr('src');
      $this.attr('src',$this.data('othersource'));
      $this.data('othersource',imgsrc)

   });
  });
});

This way if for some reasons, you have to change the images, you don't need to get back to script, you just need to change the html.

http://jsfiddle.net/AmqcY/

Note: event delegation is not necessary in this case, but still i think it's important you read about that part for furthur use.

like image 28
nubinub Avatar answered Sep 13 '26 10:09

nubinub



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!