使用jquery-ui / datepicker进行内存泄漏

时间:2011-05-26 18:50:33

标签: jquery jquery-ui datepicker jquery-ui-datepicker

我正在使用这些脚本(其中jquery-ui [] .custom.js是datepicker插件):

<script src="../../Scripts/jquery-1.5.1.js" type="text/javascript"></script>
<script src="../../Scripts/jquery-ui-1.8.13.custom.js" type="text/javascript"></script>
<script id="formvalidation" type="text/javascript">
$(document).ready(function () {
    $(".datepicker").datepicker({ dateFormat: 'dd/mm/yy' });
});
</script>

在此输入元素上(在表单内):

<input type="text" name="Date" class="datepicker" />

页面加载正常,当我在输入字段中单击时,datepicker正确弹出,但是一旦选择了日期并且日期选择器消失,我就会在每个浏览器中出现内存泄漏。由于jquery-1.5.1.js中的内存泄漏,这导致JS的一些崩溃或浏览器速度变慢:

  

行:1520错误:内存不足

调试时我看到错误行是2310

jQuery.event.remove( elem, type + types );

一点背景:

// Unbind all events for the element
if ( !types || typeof types === "string" && types.charAt(0) === "." ) {
    types = types || "";
    for ( type in events ) {
        jQuery.event.remove( elem, type + types );
    }
    return;
}

我做错了什么或者是jquery中的错误?我也在使用验证插件,但是当我禁用它时会发生同样的错误。

[解决?] 由于我无法在8小时内发布我的答案:

通过切换到最小版本的jquery(jquery-1.5.1.min.js&amp; jquery-ui-1.8.13.custom.min.js)来解决泄漏问题。似乎最小版本和开发版本之间存在一些差异。

附带问题:如果不是问题,那么在哪里提起这个问题呢?

2 个答案:

答案 0 :(得分:1)

通过切换到最小版本的jquery(jquery-1.5.1.min.js&amp; jquery-ui-1.8.13.custom.min.js)来解决泄漏问题。似乎最小版本和开发版本之间存在一些差异。

附带问题:如果不是问题,那么在哪里提起这个问题呢?

答案 1 :(得分:0)

可能你想要

$(document).ready(function () {
    $(".datepicker").datepicker({ dateFormat: 'dd/mm/yy' });
});

上面的构造将你的函数传递给jQuery作为选择器,可能会产生意想不到的后果。