event.data

An optional object of data passed to an event method when the current executing handler is bound.

.event.data()🡢 Object

Within a for loop, pass the value of i to the .on() method so that the current iteration's value is preserved.

JS
<button>0</button>
<button>1</button>
<button>2</button>
<button>3</button>
<button>4</button>

<div id="log"></div>
HTML
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>");
    });
}
DEMO

Looking for a Web Developer?

👋

Hi! I'm Basti, author of this site. If you are looking for a web developer with 15+ years of experience, holla at me!

Be it the good 'ol jQuery, vanilla JS or modern frameworks like Vue and Svelte, front- or backend, I can help you.

Just write me at jobs@jqapi.com :)