【问题标题】:Calling a function in jQuery with click()使用 click() 在 jQuery 中调用函数
【发布时间】:2010-10-01 15:16:59
【问题描述】:

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

$("#closeLink").click("closeIt");

您如何在click()调用一个函数,而不是在click() 方法中定义它?

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

    function closeIt() {
        $("#message").slideUp("slow");
    }
</script>

我的 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>

【问题讨论】:

    标签: jquery function


    【解决方案1】:
    $("#closeLink").click(closeIt);
    

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

    $("#closeLink").click(function() {
        closeIt(1, false);
    });
    

    【讨论】:

    • 引号已从 closeIt 函数中删除(我花了很长时间才明白这一点,所以添加评论以帮助其他人)。
    • @Tiago 为什么没有 ()?如果你想传递参数怎么办?
    • @Damon:因为这样会调用函数并将其返回值传递给 click 函数。如果你想传递 args,你必须这样做: $("#closeLink").click(function(){closeIt(some, args, you, 'want');});
    • 为什么不写一个更详细的答案?您的最后一条评论应该在答案本身内;)
    • @Dusty:它不会按预期工作。您的代码将立即以1false 作为参数执行函数closeit,然后该调用的结果将作为参数传递给click。仅当用户单击该事物时,您希望它调用函数closeit
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-29
    • 1970-01-01
    • 2020-08-11
    • 2015-02-18
    • 2018-08-17
    • 2014-04-16
    • 2011-01-24
    相关资源
    最近更新 更多