使用datePicker进行jQuery AJAX调用,除了IE 6,7之外的任何地方都可以使用

时间:2011-02-25 00:25:18

标签: jquery ajax jquery-ui datepicker

我很难搞清楚为什么这段jQuery代码无法在IE 6或7中运行:

$("#date").datepicker({
        dateFormat: "mm-dd-yy",
        altFormat: "yy-mm-dd",
        altField: "#realdate",
        onSelect: function(dateText, inst) {
            $("#tcontainer").animate({"opacity" : 0}, 500, function() {
                $.post("index.php", {date: $("#realdate").val()}, function(data) {
                    data = $(data).find("#maintable");
                    $("#maintable").html(data);
                    $("#maintable tr:odd").addClass("alt");
                    $(".stripe tr").hover(function() {
                        $(this).addClass("trhover");
                    }, function() {
                        $(this).removeClass("trhover");
                    });
                    $("#tcontainer").animate({"opacity": 1}, 500);
                });
            });
        }
    });

我尝试使用fadeIn / fadeOut和show / hide更改animate()方法,但这不起作用。我试着不做任何动画,但是没有用。

有没有人有任何想法为什么这在IE 6和7中不起作用?它适用于其他任何地方。

谢谢!

1 个答案:

答案 0 :(得分:0)

我想让大家知道我解决了IE 6和7中发生的问题,并希望与大家分享解决方案。这是导致问题的两行 - data = $(data).find(“#maintable”);和$(“#maintable”)。html(data);发生的事情是我以为我正在将AJAX请求中的新数据替换到表中,同时替换整个表本身。真正发生的是上面的代码将#maintable放在现有的#maintable中,所以实际上有两个表。我曾经想过,通过执行上面的代码,它会覆盖那里的表以及新数据,但事实并非如此。我创建了一个id为adminarea(或类似的东西)的div,并修改了两行,如下所示:

data = $(data).find("#maintable");
$("#adminarea").html(data);

我希望这对那些可能遇到同样问题的人有所帮助。再次感谢所有帮助过的人!