CI有这段代码:
for(var i = 0; i < toObserve.length; i++) {
var elems = toObserve[i].split('###');
var elementToObserve = elems[0];
var imageToUse = elems[1];
$(elementToObserve).observe('click', respondToClick);
}
function respondToClick(event) {
var element = event.element();
}
在respondToClick函数中,我需要为每个elementToObserve使用不同的图像(imageToUse)。我怎样才能做到这一点?我可以通过一个参数吗?
谢谢!
添加:我尝试了Diodeus的建议,但似乎只使用了最后传递的参数,当我点击的任何元素被点击时。什么是错的,或者我想做的不是正确的方式?
答案 0 :(得分:1)
使用匿名函数:
$(elementToObserve).observe('click', function(event) {
var yourVar = "moo";
respondToClick(event,yourVar)
});
答案 1 :(得分:0)
使用专门的bindAsEventListener
。
$(elementToObserve).observe('click',
respondToClick.bindAsEventListener(imageToUse)
);
然后,绑定参数将在event
参数之后传递。
function respondToClick(event, imageToUse)
{
var element = event.element();
element.src = imageToUse;
}
答案 2 :(得分:0)
我通过简单地将我的变量分配给元素对象来实现这一点:
elementToObserve.imageToUse = imageToUse;
然后在观察者函数中:
function respondToClick(event) {
var imageToUse = event.target.imageToUse;
}
我没有意识到这有任何缺点。