a标签内有点击按钮能做到点击事件触发不跳转 但是点击其他地方仍走 链接么

clipboard.png

现在整个区域都是a
=但是需要投票的点击事件并且不跳转
怎么实现呢

<a href="<?= Url::to(['photo', 'id' => $model->id]) ?>">
    <div class="t">
        <img class="photo" src="<?= Yii::getAlias('@uploadsUrl/' . $model->photo) ?>">
    </div>

    <div class="l">
        <p class="nickname">选手昵称:<?= $model->nickname ?></p>
        <p class="number">选手编号:<?= $model->id ?></p>
    </div>
<img class="btn-vote-s" src="<?= Asset::getAssetUrl('images/btn-vote-s.png') ?>">
</a>

<?php
$url = Url::to(['vote', 'id' => $model->id], true);
$js = <<<EOF
  $(".btn-vote-s").on('click', function (e) {
 e.stopPropagation();
        $.get('{$url}',function(data){
            code = data.code;
            if (code == 200){
                $(".shade-vote-success").show();
            } else if(code == 304){
              $('.shade-voteonly1').show();
            }else if(code == 403){
            }else{
    
            }
        },"json");
    });
EOF;

$this->registerJs($js);


?>
阅读 5.1k
5 个回答

给投票的点击事件阻止冒泡

投票.onclick = e => {
    e.stopPropagation()
}
<a href='javascript:;'>
<span onclick=''>投票</span>
</a>
<script>
var = document.getElementByTagName('a')[0];
a.onclick = function(){
  locaiton.href = '/a/b.html'
}
</script>
投票.onclick = function(){
    逻辑
    return false;
}

直接把btn写到a标签下边,这样它的自然层级是高于a标签的,你再加个click回调就可以随便玩了。

新手上路,请多包涵

怎么阻止跳转?
点击跳转是a标签的默认属性,想要阻止默认行为,使用preventDefault方法就可以了。

 a.onClick = function(event) {
     event.preventdefault()
 }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题