我使用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