我在名为“item”的类中有大约 12 个 div 元素
我已经使用 for-loop 为它们中的每一个附加了一个 onClick javascript 函数:
for(var i = 0; i < $$(".item").length; i++){
$$(".item")[i].observe("click", detailPopup);
}
因此,如果我单击属于“item”类的任何元素,它将运行“detailPopup”函数。但我想向该函数传递一个参数。更具体地说,我希望传递“this”()。
我该怎么做?
我认为我的问题已尽可能具体,但如果我没有做到这一点,请告诉我,我会澄清我的问题。
谢谢!
最佳答案
虽然我自己没有明确尝试过,但我相信你应该能够 burn in你的参数。
$$('.item').invoke('observe', 'click', detailPopup.curry(this));
然后将在所有其他参数之前传递对 this
的引用。您的函数可能类似于以下内容...
function detailPopup(parent, event)
{
...
this
的原始含义保留在处理程序的范围内,即触发元素的范围内。我还使用了 invoke
来避免乱用索引值和匿名函数之类的东西。
关于javascript - 当使用 observe 分配函数时,如何将参数传递给该函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4363089/