代码之家  ›  专栏  ›  技术社区  ›  rahul

IE中的javascript void(0)问题

  •  3
  • rahul  · 技术社区  · 15 年前

    你好,

    我正在使用ASP.NET开发网页。

    我正在网页中使用一些链接。为此,我使用了这样的代码。

    <a href="javascript:void(0);" onclick="javascript:ChangeLoc('TEST','');">Test</a>
    

    而在 ChangeLoc() 我写的方法 __doPostBack 事件。

    这在我的机器上安装的IE7中工作正常。但在另一台机器的IE6中,它不调用 γ-多普勒反馈 事件。

    编辑

    当我更改href中的空白(0)时,它可以正常工作。

    我想知道这是IE的bug还是javascript的问题。

    function ChangeLoc( param, arg )
    {
         __doPostBack ( param, arg )
    }
    
    4 回复  |  直到 7 年前
        1
  •  12
  •   Chad Grant    15 年前

    当您单击一个元素时,href和onclick都会被激发,您正在用void()覆盖onclick事件。

    改为

    <a href="#" onclick="ChangeLoc();return false">test</a>
    

    或使用jQuery。

    $(function(){
      $("#linkId").click(function(event){
          ChangeLoc();
          event.preventDefault();
      });
    }); 
    
        2
  •  3
  •   Adam Markowitz    15 年前

    你有错误吗?如果是这样,IE6中会出现什么错误?你能发布changeloc()的代码吗?此外,请尝试将标记更改为以下内容,并查看是否得到相同的结果:

    <a href="#" onclick="ChangeLoc(); return false;">Test</a>
    

    编辑: 从onclick中删除了'javascript'。

        3
  •  1
  •   Dimitar Ivanov    10 年前

    您还可以使用不显眼的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>
    
        4
  •  -1
  •   Sergei Kovalenko    15 年前

    用起来不好 <a> -javascript函数调用的元素。 使用风格 <span onclick="my_function()" class="looks_like_hyperlink">...</span>