Jquery检查整数?

时间:2010-12-21 10:58:04

标签: jquery

我有这段代码:

    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:)

2 个答案:

答案 0 :(得分:10)

$('a.changeSpeed').click(function(){
  $moveSpeed = parseInt($(this).attr('speed'),10);
  return false;
 });

Javascript parseInt Function

答案 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,而!undefinedtrue,因此您始终将$moveSpeed设置为4000。