Javascript - Нажмите Событие - PullRequest
       17

Javascript - Нажмите Событие

0 голосов
/ 11 ноября 2011

У меня есть следующий код

var hitarea = $("#c_" + $.fragment().category).parent().siblings('div.hitarea');
var arr = new Array();
arr.push(hitarea);

do{
  hitarea = $(hitarea.parent().parent().siblings('div.hitarea'));
  arr.splice(0,0,hitarea);
}while(hitarea.length > 0);

for(var i=0; i < arr.length; i++){
  var element = $(arr[i]);
  if(arr[i].length != 0){
    element.trigger('click');
  }
}

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

Справка.Спасибо

Ответы [ 2 ]

1 голос
/ 11 ноября 2011

Попробуйте это:

arr=[...]//array of elements

for(var i=0; i < arr.length; i++){
  var element = $(arr[i]);
  if(element.length){
    element.trigger('click');
  }
}

Примечания:

  1. Вы забыли закрыть внешний цикл for
  2. Нет необходимости проверять, является ли != 0 - 0 одним из значений JavaScript "falsey", поэтому простое помещение имени переменной будет проверять, является ли оно нулевым, не нулевым, не неопределенным и т. Д.
  3. Если arr уже является массивом объектов jQuery, то нет необходимости снова оборачивать его в объект jQuery (т.е. не делать $(arr[i])). Если это обычный элемент или подмассив DOM, тогда мой код выше будет работать.
0 голосов
/ 11 ноября 2011
if(arr[i].length != 0){

Это {опечатка?Если нет, то это объяснит проблему.

...