【问题标题】:JavaScript / jQuery problem on Internet Explorer 7Internet Explorer 7 上的 JavaScript / jQuery 问题
【发布时间】:2009-02-20 12:31:05
【问题描述】:

我有一个简单的 HTML 页面,如下所示:

...<div id="main">
    <a href="#">Click here!</a>
</div>...

我在标头中有一段 jQuery JavaScript,如下所示:

   <script type="text/javascript">
    $(document).ready(function() {
        DoHello();
    });

    function DoHello()
    {   
        $("div#main a").text("Click here!");
        $("div#main a").attr("onmouseup", "javascript:alert('Hello!');");
    }
</script>

当我在 FireFox 中单击 HTML 链接时,我会收到一条提示“你好!”的警报。为什么这在 IE7/8 中不起作用?

当我在 IE 中查看(动态)构建 DOM 时,我可以看到“onmouseup”存在,但它从未被调用。我试过用“onclick”替换“onmouseup” - 同样的问题......

【问题讨论】:

    标签: javascript jquery javascript-events


    【解决方案1】:

    您不应该将 JavaScript 伪协议用于任何事情。

    这应该可行:

    function DoHello()
    {   
        $("div#main a")
            .text("Click here!")
            .mouseup(function(){
                 alert('Hello!');
            });
    }
    

    【讨论】:

      【解决方案2】:

      不要使用expando事件,使用jQuery!

      $("div#main a").mouseup(function(){ alert('Hello!') });
      

      【讨论】:

        【解决方案3】:

        不要像那样添加 onmouseup 事件,为什么不直接使用 jQuery 方法:

        $("div#main a").mouseup(function() {
           alert("hello");
        });
        

        应该工作 :) 更多信息请查看 - http://docs.jquery.com/Events/mouseup

        【讨论】:

          【解决方案4】:

          您应该像这样使用bind 函数:

          function DoHello(){
          $("div#main a").bind("mouseup", function(e){
              alert("Hello!");
          });
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-09-10
            • 1970-01-01
            相关资源
            最近更新 更多