событие клика срабатывает несколько раз в цикле - PullRequest
0 голосов
/ 09 июля 2011

Я запускаю событие click внутри loop.it запускается несколько раз.Как я могу прекратить стрельбу несколько раз.

Мой код: -

var myArray = [1,2,3,4,5,6];

var i;
for(i=0;i<myArray.length;i++){
 $(".Mydiv").click(function(){

alert(myArray[i]);

});
}

просто пример кода.

На самом деле, я обновляю каждую секунду идентификатор Mydiv attr с помощью jQuery attrчтобы получить текущего пользователя.поэтому, когда я нажимаю mydiv, я должен получить только текущий идентификатор пользователя.но я увольняю всех.

Спасибо

Ответы [ 3 ]

2 голосов
/ 09 июля 2011

Если я вас правильно понял, это решение:

  var myArray = [1,2,3,4,5,6];

  var i = 0;
  $(".Mydiv").click(function(){
     alert(myArray[i]);
     if(i < myArray.length-1) i++;
  });

Надеюсь, это поможет.Приветствия

0 голосов
/ 09 июля 2011

В исходном коде он связывает событие клика myArray.length раз, вам просто нужно связать один раз.

так что вы можете просто сделать так:

var myArray = [1,2,3,4,5,6];
var i = 0;
 $(".Mydiv").click(function(){
    alert(myArray[i]);
   //here change the i
    i = (i+1)%length ;
 });
0 голосов
/ 09 июля 2011

Вы не можете запускать события в цикле, используя .click(), это привязывает обработчик к событию для элемента или элементов, найденных для селектора. Для запуска клика вы используете .trigger()

Но чтобы получить доступ к атрибуту элемента, по которому щелкнули, вам нужно:

 $(".Mydiv").click(function(){

alert($(this).attr('id'));

});

Хотя вы связываетесь со всеми элементами в классе, $ (this) означает, что вы действуете только на элемент, на который нажали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...