您的位置 首页 asp.Net

asp.net – 更改事件和IE8的jQuery问题

jQuery 1.4.2中存在一个错误,当使用DOM事件和jQuery事件时,select-element上的change事件会被触发两次,这只在IE7 / 8上发生.

这是测试代码:

<html>

<head>
    <script src="http://code.jquery.com/jquery-1.4.2.js" type="text/javascript"></script>

    <script type="text/javascript">

       jQuery(document).ready(function() {

         jQuery(".myDropDown").change(function() {


         });

       });

    </script>

</head>

<body>
    <select class="myDropDown" onchange="alert('hello');">
          <option>1</option>
          <option>2</option>
          <option>3</option>
          <option>4</option>
        </select>
</body>

</html>

更新:
问题的另一种观点,实际上这是我们的应用程序的真正问题.在没有用DOM事件触及select元素的选择器上绑定实时更改事件也会导致双击.

<html>

<head>
    <script src="http://code.jquery.com/jquery-1.4.2.js" type="text/javascript"></script>

    <script type="text/javascript">

       jQuery(document).ready(function() {

         jQuery(".someSelectThatDoesNotExist").live("change",function() {


         });

       });

    </script>

</head>

<body>
    <select class="myDropDown" onchange="alert('hello');">
          <option>1</option>
          <option>2</option>
          <option>3</option>
          <option>4</option>
        </select>
</body>

</html>

实际错误的票:http://dev.jquery.com/ticket/6593

这在我们的应用程序中给我们带来了很多麻烦,因为我们使用混合了jQuery的ASP.NET事件,并且一旦你在任何元素上挂起一个change事件,每个select(下拉列表)都会遇到这个双重触发问题.

在这个问题得到解决之前,有没有人知道解决这个问题的方法?

解决方法

我讨厌从死里复活这个问题,但是jquery最终修复了最近发布的1.7版本中的这个错误.

关于作者: dawei

【声明】:金华站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

热门文章