为什么点击事件中jQuery没有任何反应?
为什么点击事件中jQuery没有任何反应?
今天我有一个非常奇怪的问题。我正在使用jQuery、Ajax和PHP构建一个巨大的应用程序。
基本上,一旦页面加载完成,我就用PHP加载一个div的内容。
测试1 测试2 测试3
当有人点击这些链接时,应该弹出一个警告框,就像这样:
$("#click1").on("click", function(){ alert(1); });
然而,如果客户点击
将触发以下jQuery函数:
$("#click_here").on("click", function(){ fillDiv(); });
fillDiv()
函数基本上调用了一个ajax函数,并用返回的结果填充了div。
这与顶部的div基本相同。Php返回以下内容:
测试1 测试2 测试3
fillDiv()
函数将这些内容放入samplediv
中。我已经检查了两个结果的HTML,它们是完全相同的!
问题:
当从Ajax函数重新加载项目时,使用完全相同的HTML,如果我点击任何Test1、Test2、Test3链接,实际上什么都没有发生。没有警告,没有任何内容。甚至没有错误消息。
可能是什么问题,我没有遇到过?
为什么点击事件中的jQuery没有任何反应?
在jQuery中,.live()方法已经被弃用。可以尝试使用下面的方法来解决这个问题:
$(document).on("click", '#click1', function(){ alert(1); });
这个方法会得到与.live()相同的结果。不过,使用document作为选择器可能有些过度了,如果加载ajax的节点的父节点可用,建议使用父节点作为第一个选择器。
你可以尝试我的方法。你的锚点标签可能是问题的原因,因为它们可能会被当作链接来处理。我建议你将它们改为div或span。
另外,你可以添加以下代码来阻止链接跳转,从而执行jQuery的点击事件:
function(e){ e.preventDefault(); alert(1); }
希望以上方法能解决你的问题。