2013-07-24 66 views
1

仍然是一个相对的新手。对于那个很抱歉。我试图将一个函数声明为另一个函数的属性。我确信我可以做到这一点,而且语法是正确的。但我不断收到“函数声明需要名称”作为错误;暗示它认为我正在创建一个匿名函数。'函数声明需要一个名字'当声明函数属性时

这是代码。它在隐藏和显示参数上抛出错误。我错过了什么?

function band(){ 

var width_offset = { 
    high: "left:-376px", 
    low: "up:-200px" , 
} 

hide : function(width_offset){ 
       if ($(document).width < 768){ 
         $("#band").animate({width_offset.low}, {queue: false, duration: 200}); 
       }else{ 
         $("#band").animate({width_offset.high}, {queue: false, duration: 200}); 
       }; 
      } 

show : function(){ $("#band").animate({left:'0px'}, {queue: false, duration: 200}); } 

}

感谢。

+0

请尝试格式化您的合作所以它更具可读性。 – Wex

回答

2

这不是声明一个属性,而是声明一个标签和一个函数语句(的确需要一个名称)。

我猜你想你的其他代码能够做到band.hide()band.show(),在这种情况下,语法是沿着线:

var band = (function() { 

    var width_offset = { 
     high: "left:-376px", 
     low: "up:-200px", 
    }; 

    return { 
     hide: function(width_offset) { 
      if ($(document).width < 768) { 
       $("#band").animate({ 
        width_offset.low 
       }, { 
        queue: false, 
        duration: 200 
       }); 
      } else { 
       $("#band").animate({ 
        width_offset.high 
       }, { 
        queue: false, 
        duration: 200 
       }); 
      }; 
     }, 

     show: function() { 
      $("#band").animate({ 
       left: '0px' 
      }, { 
       queue: false, 
       duration: 200 
      }); 
     } 

    }; 
})(); 
0

你不能做这样的事情在JavaScript:

{"up:-200px"} != { up: '-200px' } # Not equivalent! 

相应更改代码:

function band() { 

    var width_offset = { 
    high: { left: "-376px" }, 
    low: { up: "-200px" } 
    }; 

    return { 
    hide: function(width_offset) { 
     if ($(document).width < 768) { 
     $("#band").animate(width_offset.low, {queue: false, duration: 200}); 
     } else { 
     $("#band").animate(width_offset.high, {queue: false, duration: 200}); 
     } 
    }, 
    show : function() { 
     $("#band").animate({left:'0px'}, {queue: false, duration: 200}); 
    } 
    } 
} 
+0

为什么downvote? – Wex

+1

也许是因为你的回答与其他类似?我没有看到任何理由。我为你平平了。 – xr280xr

+0

感谢upvote! – Wex