jQuery的on()方法无法工作(简单示例)

8

我在使用Jquery代码时遇到了一些问题。

<html>
<head>
    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript">
        $(function() {
            $(".upvote").on("click", function() 
            {
                alert('test');
            }
        }); 
    </script>
</head>
<body style="background-color:black; color:white;">
    <form action="#" method="post">
        <input type="submit" class="upvote" value=" + " />
    </form>
</body>
</html>

当我点击按钮时,什么都没有发生。我检查并确保我有jQuery 1.7。有人能帮忙吗?

为什么不直接使用.click(f);.live("click",f);呢? - bevacqua
.on() 是 jQuery 1.7 中取代了 .bind()/.live()/.delegate() 这三个函数的新方法。 - Jasper
1
谁给踩了,需要重新考虑一下。这不是一个有趣的问题,但它是一个有效的问题。 - Greg Pettit
4
使用适当的集成开发环境(IDE),比如Eclipse或NetBeans。此外,这里提供了一个示例链接以供参考:http://jsfiddle.net/Shef/gE7XS/。 - Shef
4个回答

13

您的处理程序缺少一个关闭的 );。 这将导致语法错误,从而导致代码无法运行。

$(".upvote").on("click", function() {
  alert('test');
});

2
没错。另外,如果你不想让它作为一个普通的提交按钮,你需要将事件传递到函数中并在其上调用preventDefault()方法。 - Greg Pettit
哦,这很尴尬。好的,谢谢你的回复! - CHawk

2

应该是

$(".upvote").on("click", function() {
  alert('test');
});

1

如果您提供,它可以正常工作

 $(".upvote").on("click", function() 
        {
            alert('test');
        });

而不是

 $(".upvote").on("click", function() 
        {
            alert('test');
        }

1
你的代码有错误,否则它可以正常工作:
更改:
        $(".upvote").on("click", function() 
        {
            alert('test');
        }

致:

        $(".upvote").on("click", function() 
        {
            alert('test');
        });//notice I had to add the `);` which closes the on function properly

这里是一个 jsfiddle,您的代码已经进行了小调整并且可以正常工作:http://jsfiddle.net/jasper/AVusC/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接