我有这段代码:
jQuery(function( $ ){
// If no speed is set (when loading the page) set default speed
if (!$moveSpeed) {
var $moveSpeed = 4000;
}
// Move the damn autocue
$('a.goDown').click(function(){
alert($moveSpeed);
$.scrollTo('#footer', $moveSpeed);
return false;
});
$('a.goUp').click(function(){
alert($moveSpeed);
$.scrollTo('#header', $moveSpeed);
return false;
});
// Speed settings for autocue
$('a.changeSpeed').click(function(){
$moveSpeed = $(this).attr('speed');
return false;
});
});
</script>
如果单击changeSpeed,则警告框显示它已更改为给定的数字,但它不是整数,有没有办法将变量转换为整数?
thx:)
答案 0 :(得分:10)
$('a.changeSpeed').click(function(){
$moveSpeed = parseInt($(this).attr('speed'),10);
return false;
});
答案 1 :(得分:1)
我不认为这是你遇到的实际问题,所以我把这个答案变成了CW,但是我是这样的:
jQuery(function( $ ){
// If no speed is set (when loading the page) set default speed
if (!$moveSpeed) {
var $moveSpeed = 4000;
}
if
语句完全不起作用,它的主体总是运行。 !$moveSpeed
条件始终为真。这是因为var
在当前函数中声明了一个变量,无论var
语句实际位于何处,或者它是否在条件或循环中。 More details in this article,但基本上解释器会看到这样的代码:
jQuery(function( $ ){
var $moveSpeed;
// If no speed is set (when loading the page) set default speed
if (!$moveSpeed) {
$moveSpeed = 4000;
}
...由于尚未初始化的变量的值为undefined
,而!undefined
为true
,因此您始终将$moveSpeed
设置为4000。