javascript - 下面的这段代码为什么阻止不了默认行为呀?
迷茫
迷茫 2017-04-11 10:22:34
[JavaScript讨论组]
<ul>
        <li>
            <a href="images/1.jpg" title="1" onclick="showPic(this); return false;">1</a>
        </li>
        <li>
            <a href="images/2.jpg" title="2" onclick="showPic(this); return false;">2</a>
        </li>
        <li>
            <a href="images/3.jpg" title="3" onclick="showPic(this);return false;">3</a>
        </li>
        <li>
            <a href="images/4.jpg" title="4" onclick="showPic(this); return false;">4</a>
        </li>
        <li>
            <a href="images/5.jpg" title="5" onclick="showPic(this);return false;">5</a>
        </li>
        <li>
            <a href="images/6.jpg" title="6" onclick="showPic(this);return false;">6</a>
        </li>
    </ul>
    <img id="placeholder" src="images/7.jpg" alt="7">
        function showPic(whichpic){
            var source=whichpic.getAttribute("href");
            var placeholder=document.getElementById("placeholder");
            placeholer.setAttribute("src",source);
        }

上面的这段代码是body里面的一段,但是为什么当鼠标点击的时候还是会跳转到另外一个页面?我是想让img标签原本里面的图片被替换成鼠标点击的那张图片。

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(5)
大家讲道理

showPic 方法最后一行 placeholer 拼错了!! 这才是主要原因,别的问题另当别论

补充:return false 其实就是 e.preventDefault()+e.stopPropagation(),不存在兼容性问题,参考 https://css-tricks.com/return...

伊谢尔伦

那可能是你外层有另一个页面的链接,检查层次结构看看

巴扎黑

换种写法试试:

<a href="images/1.jpg" title="1" onclick="return showPic(this)">1</a>
js:
function showPic(whichpic){
        var source=whichpic.getAttribute("href");
        var placeholder=document.getElementById("placeholder");
        placeholer.setAttribute("src",source);
        return false
    }

你的方法貌似是没问题的,可能其他地方也有问题
另外既然是取值而已,新增一个data-value的属性取值不行吗?放在href反而麻烦。。

迷茫

return false;这种阻止默认貌似只能在低版本的IE上用吧。

而且不推荐在dom上写内联的事件。

天蓬老师

event.preventDefault:

<ul>
    <li>
        <a href="images/1.jpg" title="1" onclick="showPic(event, this);">1</a>
    </li>
    <li>
        <a href="images/2.jpg" title="2" onclick="showPic(event, this);">2</a>
    </li>
    <li>
        <a href="images/3.jpg" title="3" onclick="showPic(event, this);">3</a>
    </li>
    <li>
        <a href="images/4.jpg" title="4" onclick="showPic(event, this); ">4</a>
    </li>
    <li>
        <a href="images/5.jpg" title="5" onclick="showPic(event, this);">5</a>
    </li>
    <li>
        <a href="images/6.jpg" title="6" onclick="showPic(event, this);">6</a>
    </li>
</ul>
<img id="placeholder" src="images/7.jpg" alt="7">
<script type="text/javascript">
function showPic(ev, whichpic){
    ev.preventDefault();
    var source=whichpic.getAttribute("href");
    var placeholder=document.getElementById("placeholder");
    placeholder.setAttribute("src",source);
}   
</script>
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号