2016-05-16 6 views
6

У меня есть эта простая проблема: div, содержащий ссылку, и div имеет определенную функцию onclick. Однако, когда я нажимаю ссылку, я просто хочу перейти по ссылке и не запускать функцию div div.Щелчок ссылки внутри div стрельба div onclick

Fiddle

HTML

<div> 
    <a href="http://www.google.com" target="_blank">Google</a> 
</div> 

JQuery

$('div').click(function() { 
    alert("test"); 
}); 

CSS

div { 
    height: 100px; 
    width: 200px; 
    border: 1px solid red 
} 

Так вот, когда я нажимаю на DIV, предупреждение показано: что В порядке. Когда нажимается ссылка, я не хочу показывать предупреждение.

Как этого избежать?

ответ

8

Вы можете применить event.stopImmediatePropagation(); к ссылке. Согласно API, это предотвращает выполнение остальных обработчиков и предотвращает появление пузырьков в дереве DOM (https://api.jquery.com/event.stopimmediatepropagation/).

Вот скрипка: http://jsfiddle.net/dxrdrqrc/

+0

Благодаря Герардо, он отлично работает. – chiapa

+1

Безболезненно. Если у вас есть другие обработчики для ссылки, вместо этого используйте 'stopPropagation'. –

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