我正在尝试添加两个数字但由于某种原因我没有得到NaN。
以下是示例代码
function Slider(container, nav, pagination){
this.articleWidth = this.div.width() + 20;
this.divWidth = 960;
this.articleMargin = 0;
this.pageMargin = this.divWidth + this.articleMargin
}
Slider.prototype.articleTransition = function(pageNum){
var currArticle = pageNum -1;
this.articleMargin = currArticle * this.articleWidth;
this.container.animate({'margin-left': -this.articleMargin});
}
这里一切都按预期工作。但this.pageMargin
始终为0,即使this.articleMargin
的值在articleTransition
函数中发生变化。当我在控制台日志this.pageMargin
时说NaN
。每次在函数中调用时,我都会尝试更改this.articleMargin
值的值。
以下是我在HTML中调用该函数的方法。
var slider = new Slider($('div#contentSleeve'), $('a.anav'), $('ul#scroller li'));
slider.pagination.live('click', function(){
slider.articleTransition($(this).data('num'));
});
答案 0 :(得分:0)
我猜那是因为你在匿名函数范围内调用。试试这样:
slider.articleTransition.call(slider, $(this).data('num'));
答案 1 :(得分:0)
我确实解决了这个问题。我所要做的就是创建一个全局变量来存储pageMargin和ArticleMargin的值。