jQuery dosn'内联函数不能按预期工作

jQuery dosn't work as expected with inline function

本文关键字:不能按 函数 工作 dosn jQuery      更新时间:2023-09-26

我试图排除这个函数(因为我习惯了从php中排除它),当你点击id为test1的p时,应该会触发它。

我写了以下jQuery

<!doctype html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>click demo</title>
        <style>
            p {
            color: red;
            margin: 5px;
            cursor: pointer;
            }
            p:hover {
            background: yellow;
            }
        </style>
        <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
        <script>
            function test1(){
                $( this ).slideUp();
            }
            $(document).ready(function(){
                    $( "#test1" ).click(test1());
            });
        </script>
    </head>
    <body>
        <p id="test1" class="test2">First Paragraph</p>
        <p>Second Paragraph</p>
        <p>Yet one more Paragraph</p>
    </body>
</html>

给定的例子可以很好地使用内联格式,但当我以这种方式编写它时就不行了。有人能告诉我为什么它不起作用吗?

您正在立即调用您的函数。您想要做的是传递函数的引用(不调用它)。试试这个:

$( "#test1" ).click(test1);

您可以通过定义函数来实现这一点

  $(document).ready(function(){
                $( "#test1" ).click(function(){
                $( this ).slideUp();
                });
        });