on() function in for loop
- <button> 0 </button>
- <button> 1 </button>
- <button> 2 </button>
- <button> 3 </button>
- <button> 4 </button>
-
- <div id="log"></div>
-
- <script>
- var logDiv = $( "#log" );
-
- for ( var i = 0; i < 5; i++ ) {
- $( "button" ).eq( i ).on( "click", { value: i }, function( event ) {
- var msgs = [
- "button = " + $( this ).index(),
- "event.data.value = " + event.data.value,
- "i = " + i
- ];
- logDiv.append( msgs.join( ", " ) + "<br>" );
- });
- }
- </script>
When buttons are pressed:
button = 0, event.data.value = 0, i = 5
button = 1, event.data.value = 1, i = 5
button = 2, event.data.value = 2, i = 5
button = 3, event.data.value = 3, i = 5
button = 4, event.data.value = 4, i = 5
My question is why i=5 when each button is pressed?