我有这样一个情况:访问一个全局变量
talenti = $(".talenti");
filtra = $(".filtra");
wrapNavHeight = $("#wrapNav").outerHeight(true);
filtra.click(function(e) {
e.preventDefault();
$(".nasco").hide();
$("#sliding-navigation").delay(delay).show();
delay += 500;
talenti.removeClass('opened');
filtra.addClass('opened');
filtra.attr('id',"focF");
talenti.attr('id',"");
if (filtra.hasClass("opened")) {
$("#wrapNav").slideToggle("100", "linear", function(){
alert(wrapNavHeight);
$("#container").animate({"height": "+=wrapNavHeight"}, 100,function(){
$(".box").animate({"top": "+=wrapNavHeight"});
});
});
}
});
我试图让wrapNavHeight但警报(wrapNavHeight);输出为空;不能然后将该值分配给下一个生成线
任何人?
检查' $(“#wrapNav”)。outerHeight(true);',它返回什么? 'wrapNav'的编号是正确的? – davioooh 2012-02-03 08:42:14
#wrapNav确实是一个ID。在一开始,如果我用警报检查它的值,它将返回null,因为它是display:none;但我然后使用slideToggle,它确实展开它并显示它,所以当我按照上面的代码询问它的值时,它的高度就会被定义,但由于某些原因,它仍然会返回null – 2012-02-03 08:44:37
我大卫C所建议的 - 最有可能'outerHeight()'返回'null' - 这可能意味着你在一组空元素上调用它 - 也就是''wrapNav'指向注释(http://api.jquery.com/outerHeight/)。但它也可能取决于你正在使用的jQuery版本 - 有一些相关的错误,如[这一个](http://bugs.jquery.com/ticket/7693) – 2012-02-03 08:51:56