我有一对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()
正确地对象属性。显然这两件事是相关的,但我无法解决问题。
答案 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')