2

我想从 preventDefault 中排除子 div 内的链接

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
</script>
<script>
$(document).ready(function(){
  $("#parent").click(function(event){
    event.preventDefault();
  });
});
</script>
</head>
<body>
<div id="parent">
<div id="child"><a href="mylink.html" alt="link">click me!</a></div>
</div>
</body>

是否有可能让孩子div工作的链接?我现在花了大约 3 个小时寻找答案,但我似乎无法弄清楚!

4

3 回答 3

2

检查触发事件的目标不是锚点。如果不是,则不传播该事件。

$(document).ready(function(){
  $("#parent").click(function(event){
    if(!$(event.target).is("a")){
        event.preventDefault();
    }
  });
});
于 2013-04-05T11:54:22.830 回答
1

只需检查事件的原始目标是否不是<a>标签:

$('#parent').click(function(event) {
    if(event.target.tagName !== 'A') {
        event.preventDefault();
    }
});
于 2013-04-05T11:55:52.723 回答
0
$('div').on('click', "a", function(e) {
    e.preventDefault();
});
于 2013-04-05T11:56:35.460 回答