http://jsfiddle.net/motocomdigital/c8Mey/1/
我正在使用一个Twitter脚本,我正在绑定一个函数来获取div#tweet的动态高度,一旦推文被加载。
但是之后我需要将该变量传递给.animate脚本 - 这是我到目前为止所做的。
$("#tweet").tweet({
count: 1,
username: ["motocomdigital"],
loading_text: "searching twitter...",
intro_text: null,
outro_text: null
}).bind("loaded", function(){
// this binded function is getting the height of tweet div once loaded...
var tweetHeight = $("#tweet").height();
});
然后我需要将变量 tweetHeight 传递到我正在下面运行的动画脚本中。简单的我想,但我认为我的编码有点不对。
$latestTweet.hover(function() {
// see variable in this is first alternation
$latestTweet.stop().animate({ top: "-" + tweetHeight + "px", width: "512px",
}, function() {
$latestTweet.stop().animate({ top: "-1px", width: "334px", backgroundColor: "#464848" }, 300);
});
让我们说div#tweet height(一旦加载了twitter内容)是200px,我需要这个变量的结果...
$latestTweet.stop().animate({ top: "-200px", width: "512px",
任何人都可以帮助我理解如何正确地写这个 - 我甚至尝试将我的动画脚本放在绑定函数中,但仍然没有传递变量。
主要更新
我刚刚弄明白为什么它给#tweet div的错误高度!这是因为我的#tweet div有顶部和底部填充, .height 在创建 tweetHeight 变量时不包括这些尺寸,请参阅jsfiddle here
有谁知道如何为我的 tweetHeight 变量添加固定像素尺寸?例如额外50px?
为什么我将它绑定到twitter javascript的原因是因为#tweet div的高度是动态的高度,因此从顶部位置动画,总是需要#tweet div的最终高度来定位它很完美。有关简化演示jsfiddle here的信息,请参阅。
答案 0 :(得分:0)
您只需要在函数外部创建一个变量:
var tweetHeight = 200; // a default height
// here come's the $.tweet() code, and you should only assign the new value to the "tweetHeight" variable
//$latestTweet.stop().animate({ top: -tweetHeight ...
更新为“主要更新”
如果使用函数设置变量值,则可以操作此额外像素:
var tweetHeight = 200;
function setTweetHeight(h) {
tweetHeight = h + 50;
}
现在使用该函数分配新值:
setTweetHeight( $('#tweet').height() ); // example