HI,
我正在使用asp.net开发一个网页。
我在网页中使用了一些链接。为此,我使用了这样的代码。
<a href="javascript:void(0);" onclick="javascript:ChangeLoc('TEST','');">Test</a>
并且在ChangeLoc()
方法中我写了__doPostBack
事件。
这在我的机器上安装的IE7中工作正常。但是在另一台机器的IE6中,它不会调用__doPostBack
事件。
修改
当我在href中更改void(0)时,它可以正常工作。
我想知道它是IE的错误还是JavaScript问题。
function ChangeLoc( param, arg )
{
__doPostBack ( param, arg )
}
答案 0 :(得分:12)
href和onclick都会被触发,你用void()覆盖了onclick事件
更改为
<a href="#" onclick="ChangeLoc();return false">test</a>
或使用jQuery。
$(function(){
$("#linkId").click(function(event){
ChangeLoc();
event.preventDefault();
});
});
答案 1 :(得分:3)
你收到错误吗?如果是这样,你在IE6中会得到什么错误?你可以发布ChangeLoc()的代码吗?另外,尝试将标记更改为以下内容,看看是否得到相同的结果:
<a href="#" onclick="ChangeLoc(); return false;">Test</a>
修改:从onclick中删除了“javascript:”
答案 2 :(得分:1)
您还可以使用不显眼的JavaScript语法:
<a href="index.html" id="chngLink">test</a>
<script type="text/javascript">
document.getElementById("chngLink").onclick = function(e) {
if (e && e.preventDefault) {
e.preventDefault();
}
ChangeLoc('TEST','');
return false;
};
</script>
答案 3 :(得分:-1)
使用<a>
- 元素进行javascript函数调用并不好。
使用样式<span onclick="my_function()" class="looks_like_hyperlink">...</span>