jquery没有更新dom里面隐藏完整的功能

时间:2013-09-12 09:18:06

标签: jquery

我有一对Jquery / Javascript函数:

var id_testimonials = jQuery.noConflict();

//recusive function to power slider
function ttd_testimonial (elem) {

    elem.each (function () {
        if(id_testimonials(this).is(':visible')) {
            id_testimonials(this).hide(4000, function () {ttd_show (id_testimonials(this)); });

        }
    });
}

//figure out what to show
function ttd_show (elem) {
    container = elem.parent();

    if (elem.next().length !== 0) {
        next_elem = elem.next();
    } else {
        next_elem = container('.testimonial_single').first();
    }


    regen_elems = container('.testimonial_single');
    id_testimonials(next_elem).show(4000, function (){ ttd_testimonial(regen_elems); });
}

就我所见,.hide()上的完整功能正确触发。我也能正确选择next_elem变量,所以我知道第二个函数正确接收它的args。

然而,.show()永远不会发射(或似乎永远不会发射)。这似乎没有任何理由。

我已尝试next_elem.show(args)next_elem.show()id_testimonials(next_elem).show()但没效果。

当我尝试在第二个函数中添加.css()时,dom不会更新,但我可以alert()正确地对象属性。显然这两件事是相关的,但我无法解决问题。

JsFiddle as requested

1 个答案:

答案 0 :(得分:1)

您可以在console

中看到此错误
Uncaught TypeError: Property 'container' of object [object Object] is not a function

那是因为container是一个jQuery对象,它不是一个函数。您必须使用jQuery遍历函数(如find)来从某些上下文开始获取元素。

替换

container('.testimonial_single')

container.find('.testimonial_single')