我試圖沿着這些線路做一些事情:在setTimeout裏面執行jquery成員函數而不關閉的方法?
setTimeout($('#element').hide,3000);
這似乎很簡單,但它是由"this" problem削弱。我想找到一種方法,只是將實際功能作爲參數傳遞給,而不將其包裝在另一個功能中,例如,我不想這樣做:
setTimeout(function(){$('#element').hide();},3000);
我已經試過:
setTimeout($('#element').hide,3000);
setTimeout($('#element').hide.apply(document),3000); /* jQuery docs say that document is the default context */
setTimeout($('#element',document).hide,3000);
setTimeout($(document).find('#element').hide,3000);
setTimeout($(window).find('#element').hide,3000);
setTimeout($.proxy($('#element').hide,document),3000); /* I know this returns a function, which I don't want, but I have tried it */
setTimeout(($('#element').hide()),3000); /* functional expression */
我在尋找到解決這一問題的方式,但我不想把它包在另一個功能。代碼行越少越好。我知道爲什麼這不像預期的那樣工作,但是我怎樣才能修復它,而不用將它封裝在封閉中?
的setTimeout只需要一個函數名或匿名函數作爲參數,所以我不認爲這可以根據需要來完成。你不想使用匿名函數的原因是什麼? –
在你給我們的文章中,他們給出了一個可能的解決方案。你爲什麼不嘗試它? –
@epascarello這些都是我試過的。在一行代碼中進行七次不同的嘗試。 –