【发布时间】:2012-03-31 14:10:13
【问题描述】:
我不是 JavaScript 专家(远非如此),我只是对 jQuery 有肤浅的经验——没什么太花哨的。我有以下代码:
// show search forms
searchButton = jQuery('#show-search');
searchForm = jQuery('#search-form');
function toggleSearch() {
searchButton.button('toggle');
searchForm.slideToggle(300, function() {
searchForm.find('#value').focus();
});
}
searchButton.on('click', toggleSearch());
当页面加载时,#search-form 实际上被激活并向下滑动,无需调用函数(即实际上单击按钮)。
According to this post我可以这样传递函数:
searchButton.on('click', toggleSearch);
它会像我这样做一样做:
searchButton.on('click', function() {
toggleSearch();
});
有效。两种方法都可以。
- 为什么这行得通,为什么我不能只使用第一种形式? (路过
toggleSearch()) - 如果有一个名为 toggleFunction 的变量带有一些随机值怎么办?不是传给函数吗?
编辑:我知道this excellent answer,但它没有解释“参考”部分,也没有解释先前分配的变量的情况。在这些情况下是否需要匿名函数?我应该每次都使用它们吗?
【问题讨论】:
-
我想你已经回答了你的问题。
-
@Pablo 这与方法无关,更多的是关于为什么它们有效。
标签: javascript jquery