javascript - 当使用 observe 分配函数时,如何将参数传递给该函数?

标签 javascript prototypejs

我在名为“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/

相关文章:

javascript - 如何使用原型(prototype)将元素添加到 'body'?

javascript - 在 JavaScript 中为嵌套集合执行 bool 数组的更好方法

javascript - 在纯 JavaScript 中获取元素的第 n 个子元素的编号

javascript - 以编程方式在 javascript 中创建以下变量?

javascript - CakePhp:JQuery/原型(prototype)

javascript - 原型(prototype)JS : Only react once on mouseover

javascript - 如何通过使用 moment 减去两个日期来获得总小时数?

javascript - 将相机 W.R.T 3d 对象放置在 Three.js 中

javascript - CSS 从通过 Javascript 嵌入到 Div 中的内容中剥离

javascript - Js 函数在 Chrome 上运行良好,但在 Firefox 上运行不正常