所以我有以下jQuery:
<script type="text/javascript">
// Init.
$(function () {
// Wire up the search box.
$('#searchButton').click(
search($('#query').val(),
$('aaa').val(),
$('bbb').val()
));
});
</script>
但是当我第一次点击页面时,search
函数被解雇了(因为我在那里放了一个断点)。
我认为我的代码(上图)只是说:连接点击事件,当有人点击该按钮时,会调用以下代码=&gt;搜索函数包含以下3个参数)。
有谁能告诉我我做错了什么,拜托?
答案 0 :(得分:8)
因为它需要一个函数引用。你正在做的是执行search()并将该结果作为参考传递。
<script type="text/javascript">
// Init.
$(function () {
// Wire up the search box.
$('#searchButton').click(function() {
search($('#query').val(),
$('aaa').val(),
$('bbb').val()
));
}
});
</script>
答案 1 :(得分:6)
您应该将处理程序代码包装在匿名函数中。
否则 search()将被评估,结果将应用于点击处理程序。
试试这个:
$(function () {
$('#searchButton').click(function () {
search( $('#query').val(),
$('aaa').val(),
$('bbb').val()
);
});
});
答案 2 :(得分:1)
因为你正在呼叫功能&#34;点击&#34;使用一个参数,返回&#34; search();它不是函数回调。
答案 3 :(得分:1)
这个怎么样?
<script type="text/javascript">
// Init.
$(function () {
// Wire up the search box.
$('#searchButton').click(function() {
search($('#query').val(),
$('aaa').val(),
$('bbb').val()); }
);
});
</script>
在点击事件上附加匿名功能,
并在函数中调用search($('#query').val(),$('aaa').val(),$('bbb').val());
。
答案 4 :(得分:-3)
$('#searchButton').live('click',function() {
whatever...
});