【问题标题】:JQuery fade working in IE and not ChromeJQuery 淡入淡出在 IE 而不是 Chrome 中工作
【发布时间】:2009-10-08 04:10:52
【问题描述】:

我查看了堆栈溢出,但找不到真正的答案。我有以下代码可以淡出一个项目,将信息发送到服务器,并在收到它时将其淡入。它在 IE 中效果很好。在铬中不起作用。在服务器上调用数据,但实际的淡入淡出效果不起作用。

function getChannelIndexFilter(channelName, filterType) {
        $("#videoList").fadeOut("fast", function() {
            $.get("/Home/GetChannelIndexFilter", 
                { channel: channelName, type: filterType },
                function(items, status) {
                    $("#videoList").fadeIn("fast");
                },
            "json")
        });
    }

现在我真的很困惑......即使是一个简单的

$(document).ready(function() {
    $(".videoImage").click(function() {
        $("#episodeList").fadeOut();
    });
});

不会淡出。如果我将 fadeOut() 更改为 hide() 它可以工作。

【问题讨论】:

  • 你试过chromes javascript调试器吗?
  • 当您说淡入淡出不起作用时,您的意思是它根本不显示还是没有淡入就出现了?
  • 它出现了。它不会淡出。

标签: c# jquery json


【解决方案1】:

是否有可能是 Chrome 运行速度太快而无法查看发生了什么。我会尝试将淡出时间提高到 5 秒,看看会发生什么。还可以只考虑一个没有其他代码的淡出,以查看 Chrome 在此#videolist 上的行为。我怀疑 Chrome 无法确定应该淡出的#videolist 是什么,或者它不能淡出它。

我使用了淡入/淡出效果,它们在 Chrome 上运行良好。您的代码看起来很完美,并且在此特定示例中您不需要任何分号。我个人不会在不需要它们的地方使用它们,因为缩小程序无法删除它们。

最后,我假设您正在运行最新版本的 jQuery 和 Chrome。

【讨论】:

  • 我确实在运行最新版本。
  • #videoList 只是一个 div。我尝试过fadeOut()、fadeOut("slow")、fadeOut("fast") 和动画标签。不去。唯一有效的是 hide()。这很奇怪。
  • 代码中有任何 HTML 错误吗?未闭合的标签,可能会混淆 jQuery 的东西?
【解决方案2】:

不确定这是否可行,但值得一试 - 尝试在 "json") 之后添加分号

【讨论】:

  • 没有骰子。 (还是)感谢你的建议。分号是正确的,只是不能解决问题。
【解决方案3】:

在淡入淡出之前保存将淡入 JavaScript 变量的元素的 html,然后进行实际淡入淡出,然后将原始 html 从变量返回到淡出的元素中。如果该元素包含一些将在页面加载中操作的 dom 元素,则在最后调用页面加载函数。

var sHtml = $(".divFade").html();
$(".divFade").fadeIn();
$(".divFade").html() = shtml;
PageLoad();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-09
    • 2013-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-20
    • 1970-01-01
    相关资源
    最近更新 更多