0

我正在使用 JQuery 来设置一些组合框,并且我已经将 .combobox 调用包装在 .ready 函数中以确保我的控件可用,但是在每 10 次左右加载页面时,用于组合框的元素不是在 DOM 中。发生了什么事,这怎么可能?

我的外部 JavaScript

$(document).ready(function()
{
    if (document.getElementById('selMinPrice'))
    {
        console.log('selMinPrice exists in the DOM.');
        console.log('selMinPrice value=' + document.getElementById('selMinPrice').value);
    }
    else
    {
        console.log('selMinPrice DOES NOT EXIST in the DOM!!!!!!!!!!!!!!!!!!!!!!!!!!');
    }
    // setup min & max price comboboxes
    $(".selMinPrice").combobox();
    $(".selMaxPrice").combobox();
    $("#toggle").click(function ()
    {
        $(".selMinPrice").toggle();
        $(".selMaxPrice").toggle();
    });
});

由于某种原因,我只注意到 IE 中的问题,但这并不是说它在其他浏览器中不存在。

想法?

4

1 回答 1

1

这是 jQuery 1.8.0 中引入的错误,并在 1.8.1 中修复

门票:http ://bugs.jquery.com/ticket/12282

http://blog.jquery.com/2012/08/30/jquery-1-8-1-released/的 jQuery 1.8.1 的发行说明中提到了它

从 1.8.0 升级到 1.8.1 应该确保 .ready 在 IE 中不会被过早调用。

于 2012-09-17T17:20:09.623 回答