2013-07-30 2 views
0

У меня есть некоторое погружение, и каждое погружение имеет свой идентификатор, как рев. Я хочу, когда пользователь нажимает на мой HTML, сначала нахожу, что элементы с щелчком - это div и после, чем хотят получить id и внутренний HTML выбранного div.Как найти элемент clicked на html?

Я не хочу использовать такие методы, как onclick() и .. на моих элементах div, возможно ли это путем jquery или somethings?

<div id="a2">123</div> 
<div id="a1">456</div> 

я использовал этот код, но не работает

$('html').click(function() { 
    var selectedelement = jQuery('div'); 
}); 
+1

Почему вы прикрепляете обработчик к элементу html, когда вы хотите захватить клики на divs? вы пытались использовать делегацию? возможно, привязать обработчиков к фактическим divs, если они не генерируются динамически? – cernunnos

ответ

2
$('div').click(function() { 
    var selectedelement = $(this).attr('id'); 
    alert(selectedelement); 
}); 
3
$('.someClassForYourDivs').click(function() { 
    var selectedelement = $(this); 
}); 

Значение this в JQuery, как правило, устанавливаются на любой объект, событие было уволено. Кроме того, как отметил cernunnos, вы должны добавить этот обработчик кликов к определенным элементам, которые вы хотите. Назначьте класс для них, чтобы сделать это легко.

2

Ваш селектор добавляет событие click к узлу 'HTML'. Вы хотите сделать f9ollowing, если все, что вы заботитесь о являются DIV, который я рекомендовал бы потому, что селектор будет получить любой DIV:

$('div').click(function() { 
    var selectedelement = this; 
}); 

Если вы заботитесь только о DIV с идентификаторами «a1» anbd «a2», сделайте следующее:

$('#a1,#a2').click(function() { 
     var selectedelement = this; 
    }); 
0

вы можете использовать делегирование, которая работает хорошо, если вы динамически добавлять дивы к странице:

$("html").on("click", "div", function() { 
    console.log($(this).attr("id")); 
}); 

Посмотрите эту скрипку: http://jsfiddle.net/DGeF9/

Смежные вопросы