使用 click() 在 jQuery 中调用函数

Posted

技术标签:

【中文标题】使用 click() 在 jQuery 中调用函数【英文标题】:Calling a function in jQuery with click() 【发布时间】: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>

【问题讨论】:

【参考方案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

以上是关于使用 click() 在 jQuery 中调用函数的主要内容,如果未能解决你的问题,请参考以下文章

在 jquery click() 之后调用定义的函数不起作用

jquery中$("#btn")click(function()...);中function的写法

jquery如何click事件时候 ,让某个函数暂停或终止?

用jquery,实现让快速双击只调用一次对象的click事件。

在 jQuery 中调用用户定义的函数

如何调用嵌套在 JQuery 插件中的函数?