Jquery - Div со ссылкой внутри и функцией jq.click () - PullRequest
2 голосов
/ 11 октября 2011

Можно ли отключить щелчок jquery при нажатии на ссылку href (внутри интерактивного элемента div)?

HTML

<div id="test">
    <a href="http://google.de">google</a>
</div>

JS

$(document).ready(function()
{
    $('#test').click(function() {
        alert('the link was not clicked'); 
    });
});

пример
http://jsfiddle.net/QHQcQ/2/

Ответы [ 4 ]

4 голосов
/ 11 октября 2011

Я не уверен, что вы хотите, но добавление -

 $('a').click(function(e) {
        e.stopPropagation();
        e.preventDefault();
    });

предотвратит срабатывание клика по ссылке, а также остановит всплеск клика по ссылке до события "div".

Демо - http://jsfiddle.net/ipr101/Lf3hL/

0 голосов
/ 11 октября 2011

Вы можете работать с событием или просто вернуть false:

http://jsbin.com/aliwih/edit#source

$(document).ready(function() { 
  $('#test').click(function() { 
      $("#hello").text('the link was not clicked'); 
      return false;
  });
  $('#test a').click(function() { 
     $("#hello").text('the link clicked'); 
     return false;
  });
}); 
0 голосов
/ 11 октября 2011

Вы должны остановить событие щелчка на a, всплывающем до div#test.Вы можете сделать это так:

$(document).ready(function() {
    $('#test').click(function() {
        alert('the link was not clicked'); 
    });
    $('#test a').click(function(e) {
        return false;

        //equivalent to:
        //    e.stopPropagation();
        //    e.preventDefault();
    });
});

демо

0 голосов
/ 11 октября 2011

Да, вы можете использовать

$('#test').click(function(event) {
      event.preventDefault();
});

event.preventDefault (), чтобы щелчок не работал

...