用click()调用jQuery中的函数

Edw*_*uay 54 jquery function

在下面的代码中,为什么open函数有效但close函数没有?

$("#closeLink").click("closeIt");
Run Code Online (Sandbox Code Playgroud)

你怎么只调用一个函数click()而不是在方法中定义click()

<script type="text/javascript">
    $(document).ready(function() {
        $("#openLink").click(function() {
            $("#message").slideDown("fast");
        });
       $("#closeLink").click("closeIt");
    });

    function closeIt() {
        $("#message").slideUp("slow");
    }
</script>
Run Code Online (Sandbox Code Playgroud)

我的HTML:

Click these links to <span id="openLink">open</span> 
and <span id="closeLink">close</span> this message.</div>

<div id="message" style="display: none">This is a test message.</div>
Run Code Online (Sandbox Code Playgroud)

Tia*_*ago 127

$("#closeLink").click(closeIt);
Run Code Online (Sandbox Code Playgroud)

假设你想调用你的函数将一些args传递给它,即closeIt(1, false).然后,您应该构建一个匿名函数并closeIt从中调用.

$("#closeLink").click(function() {
    closeIt(1, false);
});
Run Code Online (Sandbox Code Playgroud)

  • @Damon:因为这样将调用该函数并将其返回传递给click函数.如果你想传递args,你必须做这样的事情:$("#closeLink").click(function(){closeIt(some,args,you,'want');}); (15认同)
  • 从closeIt函数中删除了引号(我花了很长时间才知道这一点,因此添加注释以帮助其他人). (9认同)
  • @Dusty:它不会按预期工作。您的代码将立即以 `1` 和 `false` 作为参数执行函数 `closeit`,然后该调用的结果将作为参数传递给 `click`。您希望它仅在用户单击该事物时调用函数“closeit”。 (2认同)