0

How would I create a Toggle button with snap.js found here https://github.com/jakiestfu/Snap.js the usage section is very brief and I don't understand. Here is some code I came up with. I am new to javascript and any help is appreciated.

<script src="js/snap.min.js"></script>
<script>
 var snapper = new Snap({
  element: document.getElementById('content')
});
   myToggleButton.addEventListener('click', function(){

if( snapper.state().state=="left" ){
    snapper.close();
} else {
    snapper.open('left');
}

});
</script>
</head>

<body>
<button id="myToggleButton">Menu</button>
<div id="content">
This is a menu
</div>
eric2872
  • 122
  • 12

3 Answers3

2

You need to get the button element before adding click listener on it. Also, markup for id attribute is wrong on the button.

<script src="js/snap.min.js"></script>
<script>
    var snapper = new Snap({
        element: document.getElementById('content')
    });

    // Get the button
    var myToggleButton = document.getElementById('myToggleButton');

    myToggleButton.addEventListener('click', function(){

        if( snapper.state().state=="left" ){
            snapper.close();
        } else {
            snapper.open('left');
        }

    });
</script>
</head>

<body>
<button id="myToggleButton">Menu</button>
<div id="content">
    This is a menu
</div>

EDIT: Updated the answer to use document.getElementById rather than jQuery.

vivekagr
  • 1,786
  • 15
  • 23
2

It looks like there's an error in your JavaScript (unless you've omitted some code.)

var snapper = new Snap({
  element: document.getElementById('content')
});

// you need to grab a reference to this node before you can add the event listener
var myToggleButton = document.getElementById('myToggleButton'); 

myToggleButton.addEventListener('click', function(){

  if( snapper.state().state=="left" ){
    snapper.close();
  } else {
    snapper.open('left');
  }

});
user1967
  • 91
  • 4
0

addEvent(document.getElementById('toggleButton'), 'click', function(){
 if( snapper.state().state=="left" ){
        snapper.close();
    } else {
        snapper.open('left');
    }
});