2010-05-23 3 views
0

У меня мало вложенных элементов DIV. Например:Получить массив элементов из события

<div id='id1'><div id='id2'>content</div></div> 

Я придаю событие обработчика DIVs событий с помощью JQuery:

$('div').click(function() { 
    //some code 
}); 

Там будет два события, когда пользователь нажимает на содержание. Таким образом, будут два одновременных события. Можно ли получить внутри массива объектов обработчика событий (DIV), что есть событие click?

Может быть, можно использовать другие рамки, но jQuery?

+0

Ваш вопрос немного расплывчатый. Вы спрашиваете, как получить список всех элементов в DOM, у которых есть обработчик события щелчка? –

+0

уточните ваш вопрос. Вы хотите присоединить обработчики событий только к самому внутреннему div или узнать все div, у которых есть обработчик кликов? – Anurag

+0

Итак, вы хотите получить массив ВСЕХ div, чьи дети нажимают? – Eric

ответ

1

Если вы буквально хотите массив div объектов, которые получат событие щелчка, вы можете сделать:

$('div').click(function(e) { 
    var array = $(e.target).parents('div').andSelf().get(); 
    alert(array); 
    e.stopPropagation();; 
}); 

Не уверен, что это то, что вы хотите, но array будет содержать массив div с вверх по цепи.

0

Если вы сделаете это, то внешний обработчик не срабатывает, когда внутренний DIV щелкает:

$('div').click(function() { 
    //some code 

    return false; 
}); 

Если вы хотите, чтобы получить массив всех дивы быть перешедшей используйте этот:

$('div').click(function() { 
    //some code 
    var divs = $(this).parents('div'); //Gets all the divs which are ancestors 

    return false; //Prevent event bubbling 
}); 
0

Если обработчик похож на вопрос:

$('div').click(function() { 
    //some code 
}); 

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

$('div').click(function() { 
    $(this).find("div") //do something 
}); 
Смежные вопросы