Отфильтровать событие щелчка тега привязки - PullRequest
0 голосов
/ 28 января 2012

У меня есть div, который выполняет анимацию при событии щелчка. Но я не хочу запускать событие щелчка, если нажимаю на теги привязки (), которые находятся в том же самом div. Есть ли какой-нибудь способ получить события из тега привязки или нет? Вот фрагмент кода
https://gist.github.com/1694091

Ответы [ 6 ]

2 голосов
/ 28 января 2012

Остановить распространение при щелчке якоря,

$("a").click(function(e) {
        e.stopPropagation();
});
1 голос
/ 28 января 2012

Создайте 2 события - 1 для div и 1 для ссылки, и используйте (как уже предлагалось) stopPropagation, чтобы остановить щелчки по ссылке, также вызывая событие click div ....

$(".stream-cell").on("click", function() {
    //  The div was clicked
});
$(".stream-cell a").on("click" function(e) {
    e.stopPropagation();
    //  The link was clicked
});
1 голос
/ 28 января 2012

якорь всегда имеет атрибут name, попробуйте это:

$("a").click(function(e) {
        if ($(this).hasAttr("name")) {

        }
    else{

    }
})
1 голос
/ 28 января 2012

использование

event.target == $('#anchorElement').get(0);

Вы также можете сделать это:

$('#anchorElement')
 .click(
   function(e)
    {
      e.stopPropagation();
      e.preventDefault();
      return false;
    }
  );
0 голосов
/ 28 января 2012
<script type="text/javascript">
    $('div').on('click', function(e) { 
        if(!$(e.target).is('a')) {
            alert('div clicked, but NOT an a!');
        }
    });
</script>

- редактировать, извините, слишком быстро, не сработало, но это будет! (Проверено)

0 голосов
/ 28 января 2012

Тег Anchor имеет событие onclick, как и все остальное в dom.Я считаю, что вам нужно иметь

 <a href='' onclick="javascript:return false;">Click ME!</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...