2015-06-19 2 views
0

Я хочу, чтобы функция jquery динамически выполнялась для n-numner раз. Alert работает для количества count, но функция не создается столько раз. Мой код нижеФункция onclick не повторяется внутри javascript для цикла

 var count = 5; 
     var i = 1; 
     for (var i = 1; i <= count; i++) 
     { 
      var min = ".min" + i; 
      alert(min); // Just for testing purpose, working good 
      document.writeln(min); // Just for testing purpose, working good 
      alert(i); // Just for testing purpose, working good 

      // Following function does not get repeated, 
      $(document).ready(function() { 
       $("min" + i).click(function() { 
        alert(i); 
       }); 
      }); 
     } 

Мой раздел кода тела следующим образом

<div class="min1"> Test - 1 </div> 
<div class="min2"> Test - 2 </div> 
<div class="min3"> Test - 3 </div> 
<div class="min4"> Test - 4 </div> 

Это может выглядеть просто, но мне нужно кого-то руководство, чтобы сделать это. Пожалуйста, помогите мне заставить его работать. Это просто концепция, которую я собираюсь реализовать на большой основе в моем проекте. Заранее спасибо.

+2

Ваша функция не будет работать, как вы пропустили селектор точек, как в $ ("мин" + I) –

+0

'$ ("мин" + I)' Какую цель делает это селектор подавать? –

+0

Когда я просматриваю исходный код в браузере, я не нахожу повтора в функции. Так что ошибка, связанная с точкой, должна быть исправлена, но приоритетом является ее повторение, чтобы индивидуальная функция могла ориентироваться на отдельный div. –

ответ

3

Хотя проблема в коде неправильного использования closure in a loop.

Решение может быть различным, вы можете использовать обычный обработчик кликов для всех элементов, а затем использовать атрибут data-* для хранения динамического значения, необходимого в обработчике кликов.

$(document).ready(function() { 
 
    $(".min").click(function() { 
 
    alert($(this).data('id')); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div class="min1 min" data-id="1">Test - 1</div> 
 
<div class="min2 min" data-id="2">Test - 2</div> 
 
<div class="min3 min" data-id="3">Test - 3</div> 
 
<div class="min4 min" data-id="4">Test - 4</div>