Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.12.2012, 14:03
Интересующийся
Отправить личное сообщение для klev2004 Посмотреть профиль Найти все сообщения от klev2004
 
Регистрация: 05.04.2012
Сообщений: 25

Обработка нажатия на элемент и его родитель
Простая проблема вроде бы, но вот решить не получается.

Есть <div>, в котором есть <a>. У каждого из них есть свой id. Есть скрипт, который по разному реагирует на клик по div'у и по a.

Проблема: после клика на <a> происходит обработка его, а заетм еще и обработка клика по <div>.

Наглядная иллюстрация: http://jsfiddle.net/tLGd7/

Помогите исключить обработку нажатия на div, если было осуществлено нажатие на a.
Ответить с цитированием
  #2 (permalink)  
Старый 12.12.2012, 14:32
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

klev2004,
<style>
#id1{
    background-color: yellow;
    width: 100%;
    height: 30px;
}
</style>
<div id="id1">
    <a href="#" id="id2">link</a>
</div>
<script>
window.onload = function () {
    document.getElementById("id1").onclick = function (e) {
         e = e || event;
         target = e.target || e.srcElement;
         if (target.tagName == "A") { alert("линк"); }
         else { if (target.id == "id1") { alert("div"); } }
    }
}
</script>
Ответить с цитированием
  #3 (permalink)  
Старый 12.12.2012, 15:24
Интересующийся
Отправить личное сообщение для klev2004 Посмотреть профиль Найти все сообщения от klev2004
 
Регистрация: 05.04.2012
Сообщений: 25

lord2kim, спасибо!
Ответить с цитированием
  #4 (permalink)  
Старый 12.12.2012, 20:07
Профессор
Отправить личное сообщение для Hoshinokoe Посмотреть профиль Найти все сообщения от Hoshinokoe
 
Регистрация: 08.01.2012
Сообщений: 253

klev2004,

В данной ситуации лучше использовать stopPropogation (отменяет всплытие события наверх).
<div id="id1">
    <a href="#" id="id2">link</a>
</div>
$('#id1').click(function(){
    alert('id1');                
});

$('#id2').click(function(event){
    alert('id2');
    event.stopPropogation();
});
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка изображения до его отображения на странице после аякс запроса балерун Общие вопросы Javascript 1 30.05.2012 17:20
Drag-n-Drop - перетянуть элемент Jugo ExtJS 1 10.08.2011 19:10
Обработка события элемента внутри создавшего его объекта pauluss Общие вопросы Javascript 10 10.09.2010 17:01
Закрыть элемент при клике вне его masterm Общие вопросы Javascript 3 31.07.2009 11:27