a标签中onclick与href之间的问题

因为href要跳转的url需要根据当前页面的url来确定,所以需要写成函数,所以页面跳转需要通过onclick事件来完成。我设置了onclick执行函数的返回值为false,但页面并没有跳转,为什么?
不介意多讲讲,谢谢。

额 刚才又试了一次,发现这个a标签只有第一次点击管用,后面再点就没有反应了。。什么原因啊

<a class="right-float sub-panelheading-font" href="#" onclick="addtrx()"> 添加通道 </a>


function addtrx(){
    var url_t = window.location+'/addtrx';
    window.open(url_t,'_self');
    return false;
}

11个回答

你第一次点击的的时候是没问题的,但是问题来了,为什么第二次点击的时候不行的,看了下你的a标签中的href属性是#符号,所以当你第一次点击之后,你注意看下浏览器的url地址栏,你会发现地址后面突然多了个#符号,所以你第二次点击的时候地址就变为xxxxxx..html#/addtrx这是跳不过去的,这个才是原因,你可以使用javascript:void(0)或者javascript:;;都可以。

结果如下图所示:
图片说明
图片说明
图片说明

hr10230322
何-小鱼 是这样!开始没注意。。谢谢
接近 3 年之前 回复

将href="#" 改成href="javascript:void(0)"
原因是。第url里加上了#号了。所以第二次点击不会打开新窗口!

hr10230322
何-小鱼 嗯嗯 谢谢
接近 3 年之前 回复

添加通道

function addtrx(event){
event.preventDefault();
var url_t = window.location+'/addtrx';
window.open(url_t,'_self');
}

你的href里有这样做吗href="javascript:void(0)"

建议alert(url_t )看一下

alert(url_t ),你可以试试

我是来学习一下的,我用你的代码试了一下,是能够进行跳转的

第一次跳转有用 后面没用 应该是浏览器的原因 因为重复点击的访问路径相同,有的浏览器不认,你可以在地址后面?加一个时间或者随机数来欺骗浏览器

click和href根据浏览器解析不同来确定谁先执行,又或者两者都执行。有些浏览器即使加入了href="javascript:void(0);",也不一定会有效,所明白点,就是href本身包含了点击事件。因此click成了多余。这种需求建议舍弃a标签,用其他标签来代替,通过增加样式来达到同样的视觉效果

把 href 改了吧。href="javascript:void(0)" 给楼主个传送门 -href="#"和href="javascript:void(0);"、href="javascript:;间的区别"

共11条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐