Как передать переменные в функцию jQuery click/onclick без запуска функции?

#javascript #jquery

Вопрос:

Моя карточная игра запускает событие щелчка для всех карт после загрузки DOM. Мой код изначально выглядел так

 $.each(cardArray, function(i,value){  var activeCard = $('lt;div class="cardContainer" title="' cardArray[i]['name'] '" gt;' cardArray[i]['damage'] 'lt;/divgt;');  activeCard.click(doStuff(i,activeCard)); }  

но после поиска некоторых других полезных ответов на ту же проблему я обнаружил, что это связано с (), приводящим к выполнению функции, поэтому мой новый вызов должен выглядеть так

 $.each(cardArray, function(i,value){  var activeCard = $('lt;div class="cardContainer" title="' cardArray[i]['name'] '" gt;' cardArray[i]['damage'] 'lt;/divgt;');  activeCard.click(doStuff); }  

К сожалению, это означает, что я остаюсь без возможности передавать нужные мне переменные. Каковы возможные решения или лучшие практики здесь?

Комментарии:

1. попробуйте что-нибудь вроде этого activeCard.click(() =gt; doStuff(i,activeCard));

2. Это вызвало другие проблемы, но решило мою первоначальную проблему и остановило их запуск — можете ли вы объяснить, что это на самом деле сделано или как/почему это решает мою проблему?

3. вам нужно передать функцию, а не результат выполнения функции, как вы это сделали. мой последний комментарий такой же, как activeCard.click(function() { doStuff(i,activeCard) });