在jQuery 1.9中使用fadeIn进行未捕获的TypeError

前端之家收集整理的这篇文章主要介绍了在jQuery 1.9中使用fadeIn进行未捕获的TypeError前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这是问题,不幸的是我们 have to support IE8.
所以我不得不从使用最新的jQuery 2.0变回 jQuery 1.9.

现在我们使用大量的jQuery来加载仪表板的不同部分,我们淡出以前的屏幕并淡出新的屏幕.我以为我用here(prepend html)here(ajax HTML)找到的解决方解决了所有这些问题.

但是,下面相同的错误消息还有一个问题:

错误

Uncaught TypeError: Cannot set property 'cur' of undefined

我已经将源缩小到loadResource函数,该函数用于切换内容.

基本上,如果我从下面的函数中注释掉这一行:

$content.fadeIn('fast');

并替换它

$content.show();

问题解决了,我们不再得到’cur’错误.然而,我们失去了淡入效果.

你如何解决这个问题,解决jQuery 1.9中的Uncaught TypeError,同时保持对$content的fadeIn效果

var loadResource = function(url,params,callback) {
WHOAT.networking.getToServerWithAjax(url,function (response) {
        var $content = $($.parseHTML(response.trim()));
        var $container = $('#dashboard-display');
        var $content_to_hide = $container.children();

        $.when($content_to_hide.fadeOut('fast')).then(function () {
            $content.hide();
            $container.append($content);

            //$content.fadeIn('fast'); // <- buggy in 1.9.1
            $content.show(); // <- works,but no fadeIn

            $content_to_hide.remove();

            if(callback) {
                callback();
            }
        });
    });

// CSS updates...
};
@H_404_28@解决方法
奇怪!

好的,也许我是一个独特的案例,在摆弄并浏览jQuery和我们的模板之后.我把它缩小到这个特定的模板(Mako / Python):

##conditional to determine with the template should inherit from the base page
##it shouldn't inherit from the base page is it is being inserted into the page using ajax
<%!
    def inherit(context):
        if context.get('isPage'):
            return "base_dashboard.mak"
        else:
            return None
%>
<%inherit file="${inherit(context)}"/>

<div id="dashboard-profile-container">
    <%include file="widgets/profile_widget.mak" />
</div>

<div class="spacer-div"></div>

我所要做的就是删除space-div:

<div class="spacer-div"></div>

基本上,上面的模板正在加载导致问题的页面的HTML.我三重检查了HTML,一切都很好,但由于某种原因,这个空的spacer div导致了Undefined错误

可能由于某种原因,当jQuery尝试呈现页面时,额外的HTML节点导致了问题

猜你在找的jQuery相关文章