javascript - jQuery click() 无法处理替换的 html

标签 javascript jquery ajax

我正在尝试创建一个 go-moku游戏使用 jquery、php 和 mysql 数据库。 我有一个 ajax 函数,可以在需要时每秒更新一次面板。

var turnCount = -1;
setInterval(function(){
    $.get('includes/boardControl.php',{turn: turnCount }, function(data){
        if(data != "")
        {   $("#board").html(data);
            turnCount = $("#turnCount").text();
            $("#turnCount").text("")
        }
    });

}, 1000);

这工作得很好,它会检查数据库以查看转数是否已增加,如果增加了则替换棋盘。现在我最终想做的是创建一个点击函数,使用 Ajax 更新棋盘并在数据库中进行计数。我希望以某种方式使用第 N 个选择器来确定我点击的是哪个方 block 。

我有几个问题。

1) 我现在的点击功能是

$(document).ready(function() {
    $("td > img").click(function(){
        alert("clicked");
    });
});

截至目前,它适用于我写入 html 的额外测试表,但不适用于使用先前函数创建的表。我做错了什么?

2) 到目前为止,我看过的教程规定我应该按以下方式编写代码。

$(document).ready(function() {
  //code here
});

当我昨晚问一个问题时,有人告诉我我的函数过于复杂了。那么我什么时候应该使用 document.ready 函数,什么时候不应该?将我所有的脚本放入一个 document.ready 函数中是否合适,还是我应该有多个?

3) 一旦点击图像开始工作,我希望将 X、Y 坐标发送到服务器并更改板上的相应位置。我将如何确定单击表格中的哪个单元格以了解要使用的坐标? (或者有更简单的方法吗?)

最佳答案

听起来你需要改变

$("td > img").click(function(){
                alert("clicked");
        });

$("td > img").live('click',function(){
                alert("clicked");
        });

编辑:对于 jQuery 1.9 及更高版本,您可以:

$("#board").on('click', 'td > img', function(){
  // handle click
});

关于javascript - jQuery click() 无法处理替换的 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1501300/

相关文章:

jquery - 通过 jquery 查找与多个元素共享一个类的特定元素

javascript - 使用 Ajax 监控表单失败

javascript - TypeScript async/await 与 JS tj/co

javascript - jQuery UI - 如何区分拖动/调整大小开始事件和单击事件?

javascript - 如何绑定(bind)键盘和鼠标的粘贴事件?

jquery - CORS:始终通过 jQuery.ajax 从 Mojolicious::Lite 获得空响应

javascript - jQuery-File-Upload - 一种形式的多个输入文件

javascript - stuts2 Action 和 jquery ajax

javascript - 在选择时模拟点击事件(不适用于 IE 和 FF)

javascript - Jquery 在 cshtml 页面中不工作