jquery按名称调用函数

kus*_*agi 16 jquery function

我有功能

<script type="text/javascript">
    $(function () {
        $("#search").click(function() {
            var text = $("#searchText").val();
            $.getJSON("Search", { world: text, filter: text }, function(data) {
                $("tr.DataRow").toggle(false);
                for (i = 0; i < data.length; i++) {
                    $("#obj" + data[i]).toggle(true);
                }
            });
        })            
    });


</script>
Run Code Online (Sandbox Code Playgroud)

现在我有另一个功能

<script type="text/javascript">

    $(function() {
        $('#searchText').bind('keypress', function(e) {
            if (e.keyCode == 13) {

            }
        });
    });
</script>
Run Code Online (Sandbox Code Playgroud)

我如何从第二个函数调用第一个函数?

Jua*_*uan 20

您可以在注册第一个函数的元素上引发单击事件

<script type="text/javascript">

    $(function() {
        $('#searchText').bind('keypress', function(e) {
            if (e.keyCode == 13) {
                $('#search').click(); // Raise a click event on #search element
            }
        });
    });
</script>
Run Code Online (Sandbox Code Playgroud)


har*_*rto 20

将逻辑从第一个事件处理程序解压缩到命名函数:

function doSearch() {
    var text = $("#searchText").val();
    $.getJSON("Search", { world: text, filter: text }, function(data) {
        $("tr.DataRow").toggle(false);
        for (i = 0; i < data.length; i++) {
            $("#obj" + data[i]).toggle(true);
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

您现在可以doSearch按名称传递给单击处理程序:

    $(function () {
        $("#search").click(doSearch);
    });
Run Code Online (Sandbox Code Playgroud)

并从密钥处理程序中显式调用它:

    $(function () {
        $('#searchText').bind('keypress', function(e) {
            if (e.keyCode == 13) {
                doSearch();
            }
        });
    });
Run Code Online (Sandbox Code Playgroud)


Poi*_*nty 12

// first function
$(function() {
  $.yourFavoriteFunctionName = function() {
    // the code for the first function
  };
  $.yourFavoriteFunctionName();
});
Run Code Online (Sandbox Code Playgroud)

然后

// second function
$(function() {
  // whatever
  if (foo)
    $.yourFavoriteFunctionName();
Run Code Online (Sandbox Code Playgroud)