event.data
- второй параметр этой строки:
$ (this) .on ("щелчок", {x: i} , функция (событие){
Так вы объявляете eventHandler, простыми словами, вы говорите, что делать, когда кто-то щелкает по любому элементу <p>...</p>
, поэтому последний параметр - это функция, которая будет выполняться при нажатиислучается.
Когда браузер обнаруживает щелчок, он запускает эту функцию с некоторыми данными о только что произошедшем событии, объект, который в примере, который вы называете событие , вы можете проверитьчто еще содержит этот объект: https://www.w3schools.com/jsref/obj_mouseevent.asp
Подробнее
Вам не нужно вызывать его событие , вы можете вызывать его как угодно, например:
$(this).on("click", {
x: i
}, function(potato) {
console.log(potato.data) // {x:#}
});
Вы можете опустить второй параметр, если вам не нужно использовать данные
$(this).on("click", function(event) {
console.log(event.data) // undefined
});
Об индексе против data.x, разница в том, что каждый функция, дает вам индексный параметр, начинающийся с 0, и функция index () элемента, вероятно, даст вам
$("p").each(function(i) {
$(this).on("click", {
x: i
}, function(event) {
console.log(event.data.x) // 0...1...2...3 depending on where you clicked
console.log($(this).index()) // 1...2...3...4 depending on where you clicked
});
});