我使用jQuery的each
函数来调用悬停鼠标事件:如何用每个函数中的函数发送一个值?
$('.entry .post-entry a').each(function(){
root.setDimensions(this);
$(this).on("mouseenter", root.mouseEnter);
$(this).on("mousemove", root.mouseMove);
$(this).on("mouseleave", root.mouseLeave);
$(this).on("click", root.onClick);
});
这个伟大的工程,但我需要的项目的索引发送到这些功能。问题是,当我在每个函数的末尾添加函数标记:()
时,函数将在页面加载后调用,但我不想要这样。
我知道一种使用参数向函数发送变量的方法。但是,使用这些,你应该使用括号,就像这样:
$('.entry .post-entry a').each(function(index){
var index = index;
root.setDimensions(this);
$(this).on("mouseenter", root.mouseEnter(index));
$(this).on("mousemove", root.mouseMove(index));
$(this).on("mouseleave", root.mouseLeave(index));
$(this).on("click", root.onClick(index));
});
如何发送的值,而无需直接调用该函数?
而这个函数应该像mouseEnter一样吗?像这样:'mouseEnter:function(event,index){}'? – Caspert
@Caspert no。绑定的参数将首先放置,因此它将是'(index,event)'。当你不知道函数中有什么参数时,使用'console.log(arguments)'来检查它们。 – DontVoteMeDown
好的,很好。所以你总是可以使用'console.log(arguments)'函数发送任何参数?也许一个愚蠢的问题,但你喜欢你的方法或从@RoryMcCrossan? – Caspert