我可以通过“本”是在javascript
参数传递给另一个函数我有这样的:我可以通过“本”是在javascript
$('#slider li').click(function() {
var stepClicked = $(this).index();
alert(stepClicked);
if (stepClicked != 0) {
$('#cs_previous').removeClass('cs_hideMe');
} else {
$('#cs_previous').addClass('cs_hideMe');
}
$('li.cs_current').removeClass('cs_current');
$($(this)).addClass('cs_current');
moveToNextImage(stepClicked);
function moveToNextImage(stepClicked) {
alert(stepClicked);
var currentIs = $('li.cs_current').index();
var newLeftEdge = currentIs - stepClicked;
$('.cs_riskStageImage').fadeTo(200, .2).animate({
left: newLeftEdge
}, "fast").fadeTo(200, 1);
};
});
警报显示了适当的指数为里点击,当我提醒最后一个函数我内变量打电话,moveToNextImage(stepClicked)
,同样的值显示,但动画没有发生。这工作许多其他方式,但我试图通过单击列表项的索引值用于计算数学。
..或者我可以将该值转换为第一个函数中的另一个变量,我可以传递给第二个函数?
的JavaScript函数call()
和apply()
都是为了呼叫的目的上下文中的函数。
function sum() {
return this.num1 + this.num2;
}
function callSum(num1, num2) {
this.num1 = num1
this.num2 = num2
return sum.call(this); //call sum() in the context of this
}
alert(callSum(10, 15));
function applySum(num1, num2) {
this.num1 = num1
this.num2 = num2
return sum.apply(this); //call sum() in the context of this
}
alert(applySum(30, 45));
现在在sum()
功能this
关键字有相同的情况下,因为它在callSum()
和applySum()
功能一样。
call()
和apply()
之间的区别是,应用的第二个参数是一组参数来传递或arguments
对象。
我认为这个问题是,因为+是一个数值运算符和字符串concantenation,当我尝试添加变量持有“this”与另一个变量,结果是一个新的字符串....我需要解析索引值,以保持它我想数字....感谢所有这些,我需要仔细考虑这一切,并且我会标记适当的回应。 – 2012-03-21 22:00:23
当然不用担心。请记住,虽然其他人会搜索问题的标题,所以如果您标记回答标题中的问题,这对他们最有利。如果将来您确实需要在某个上下文中调用某个方法,则这些是javascript语言提供的方法。 – 2012-03-21 22:18:54
您可以通过这个给另一个函数一样
moveToNextImage(this, stepClicked);
function moveToNextImage(obj, stepClicked) {
var index = $(obj).index;
}
在你的代码是什么这行的意思是
$($(this)).addClass('cs_current');
应该像
$(this).addClass('cs_current');
是的,正确的...我正在尝试其他的东西瓦特/索引和values..this应该只是$(this)... kj – 2012-03-21 22:02:12
“我可以通过”这个“作为参数传递给JavaScript中的另一个函数” - 是的,你可以,它是一个普通的变量,引用当前对象。有什么问题呢? – zerkms 2012-03-21 20:40:28
http://www.quirksmode.org/js/this.html – zod 2012-03-21 20:41:05
'$($(this))'应该只是'$(this)'。 – 2012-03-21 20:45:47