Jquery Ajax php - .one功能无法正常工作

时间:2016-12-27 18:11:05

标签: javascript jquery ajax

这是一个简单的测试页面。问题是,对于第一次点击锚标记,我得到了值,但是当我第二次点击它时,似乎ajax停止工作。请告诉我如何解决它。谢谢!

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
<style>

</style>
</head>
<body>
<script>
$(document).ready(function() {
    $("a").one('click', function(e) {
        $.ajax({
        type: 'GET',
        data: { 
        play: $(this).attr("href") },
        success: function(msg) {
            //alert(msg);
            $("#playarea").append(msg);
          }
        });
    e.preventDefault();
    });
});
</script>

<div><a id="run1" href="link1">Test1...</a></div>
<div><a id="run1" href="link2">Test2...</a></div>
<div><a id="run1" href="link3">Test3...</a></div>
<div><a id="run1" href="link4">Test4...</a></div>
<div><a id="run1" href="link5">Test5...</a></div>

<div id="playarea"></div>

</body>
</html>

1 个答案:

答案 0 :(得分:1)

您应该使用 on() 而不是 .one() ,因为one()只会点击一次点击事件然后分离它

  

.one()说明:将处理程序附加到元素的事件。每个事件类型的每个元素最多执行一次处理程序。

$("a").on('click', function(e) {
    $.ajax({
    type: 'GET',
    data: { 
    play: $(this).attr("href") },
    success: function(msg) {
        //alert(msg);
        $("#playarea").html(msg);
      }
    });
    e.preventDefault();
});

注意:如果您要覆盖旧结果,请使用html()代替append()。 希望这会有所帮助。