У вас есть много вариантов:
1) Используйте bind, чтобы создать новую функцию с уже заполненным параметром:
var card1 = document.getElementById('#id1');
var choose = function( num ) {
console.log( num );
};
card1.addEventListener('click', choose.bind(null,1));
<button id="#id1">Card 1</button>
2) Вернуть функцию изнутри choose()
.Это почти так же, как использование .bind()
:
var card1 = document.getElementById('#id1');
var choose = function( num ) {
return function( event ) {
console.log( num );
};
};
card1.addEventListener('click', choose(1));
<button id="#id1">Card 1</button>
3) Пусть элемент карты скажет вам номер:
var card1 = document.getElementById('#id1');
var choose = function( event ) {
var num = event.target.getAttribute( 'data-number' );
console.log( num );
};
card1.addEventListener('click', choose );
<button id="#id1" data-number="1">Card 1</button>
4) Другой ответ, приведенный ниже, также создает другую функцию, но путем ее непосредственного написания вместо возврата или использования .bind()
.
Какой из них использовать, полностью зависит от того, что подходит для вашего проекта, ваших собственных предпочтений, подписи других вещей, которые могут использовать choose()
и т. Д.