试图连接一个jQuery .click()事件..但是它被解雇了(而不仅仅是接线)

时间:2013-01-04 01:52:04

标签: javascript jquery onclick click

所以我有以下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个参数)

有谁能告诉我我做错了什么,拜托?

5 个答案:

答案 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...
    });