jquery .click not working = jquery .on(click ...)工作正常

Tim*_*PQR 0 jquery click onclick

几个星期前,我正在研究我的项目,并编写了一些代码来使表格行可点击(在那里,完成了).此代码之前已经使用过没有问题.浪费了一天试图让代码工作(尽管我之前已经多次完成) - 我试图让它工作的一些事情 - 在所有内容上改变id到类,b - 从底部移动代码脚本部分顶部,ç -重新命名变量,d -添加"变种"在变量前面,从变量前面减去VAR,ë -更改所有的单引号双引号,更改所有双引号单引号,˚F -变化表的名称,g - 尝试单击表而不是行,h - 将表放在div中,从div中取出表等等.

没有什么是成功的,所以作为最后的手段,深夜,我将.click切换到.on(点击 - 并且惊喜 - 一切正常.

同样的事情发生在昨天,但是在做一个 - ^ h,我跳下权改变.点击上(点击.

以下是两个代码段:

$("#mdtable tr").click(function() { 
    var localmdid = $(this).find("#mdid").html();
    alert("mdid =" + localmdid);
});
Run Code Online (Sandbox Code Playgroud)
$(document).on('click', '#mdtable tr', function(e) {
    var localmdid = $(this).find("#mdid").html();
    alert("mdid =" + localmdid);
           });
Run Code Online (Sandbox Code Playgroud)

上面的一个永远不会工作,下面的一个总是工作(我评论它们进出).

以下是另一个页面的代码片段,效果很好:

$("#patienttable tr").click(function() {
       var passthis = $(this).find("#localid").html();
       $.post("php/setsessionvariable.php",
              {sessionval: passthis},
              function(e) {window.location.href = "root.php"}
              );
});
Run Code Online (Sandbox Code Playgroud)

我已经阅读了jQuery文档,它说.click函数与.on直接相关(点击,因此对我来说,如果一个有效,那么其他应该有效.

作为一个菜鸟,我想成为一个更好的程序员,即使我的代码与.on一起使用(点击,我想知道为什么我的.clicks不起作用(智力练习).

所以我的问题是:

  1. 是.click和.on(点击真的相关?

  2. 在点击代码段中是否有一些显而易见的东西让它失去功能?

  3. 关于这个问题有不同的方法吗?

我再次感谢你

Adi*_*dil 5

.click将点击事件绑定到存在于该时间在元件DOM上()将委托的事件,并且将其动态添加以后的点击(事件)结合.

委托活动

委托事件的优点是,它们可以处理来自稍后添加到文档的后代元素的事件.通过选择在附加委托事件处理程序时保证存在的元素,您可以使用委派事件来避免频繁附加和删除事件处理程序,参考.

  • 更具体地说,在提供的代码中,`on`将事件绑定到`document`.事件不会在以后添加. (2认同)