jquery即使使用不带href的标记也可以单击

jquery即使使用不带href的标记也可以单击,jquery,ajax,Jquery,Ajax,我在主页上定义了一个id为“mydiv”的DIV。然后我使用ajax在该DIV中加载一些链接文本 现在我想在任何人点击这些链接时做点什么,所以我定义了jquery,如下所示 $("#mydiv > a").live('click',function(){ alert($(this).text()); }); 加载的内容如下表所示 <a style="cursor:pointer;">Text 1</a> <a style="cursor:pointer;

我在主页上定义了一个id为“mydiv”的DIV。然后我使用ajax在该DIV中加载一些链接文本

现在我想在任何人点击这些链接时做点什么,所以我定义了jquery,如下所示

$("#mydiv > a").live('click',function(){
  alert($(this).text());
});
加载的内容如下表所示

<a style="cursor:pointer;">Text 1</a>
<a style="cursor:pointer;">Text 2</a>
<a style="cursor:pointer;">Text 3</a>
Text 1
文本2
文本3
谁能告诉我我做错了什么


谢谢,

因为您正在动态地(通过ajax)加载id为“mydiv”的
DIV中的内容…请使用委托事件

$("#mydiv").on('click','a',function(e){
  e.preventDefault();  //you may not need this... but this stops the default behaviour of <a> tag 
  alert($(this).text());
});
$(“#mydiv”)。在('click','a',函数(e)上{
e、 preventDefault();//您可能不需要它……但这会停止标记的默认行为
警报($(this.text());
});

由于您正在动态(通过ajax)加载id为“mydiv”的
DIV中的内容,因此请使用委托事件

$("#mydiv").on('click','a',function(e){
  e.preventDefault();  //you may not need this... but this stops the default behaviour of <a> tag 
  alert($(this).text());
});
$(“#mydiv”)。在('click','a',函数(e)上{
e、 preventDefault();//您可能不需要它……但这会停止标记的默认行为
警报($(this.text());
});
您可以这样使用

html

Text 1
文本2
文本3
您可以这样使用

html

Text 1
文本2
文本3

当您动态加载内容时,
.on()
处理程序将在jQuery 1.9.0版中用于此操作:

您必须
将事件
委托给
最近的现有父级
,或直接委托给
文档
(它是所有其他元素的父级)

或:


当您动态加载内容时,
.on()
处理程序将在jQuery 1.9.0版中用于此操作:

您必须
将事件
委托给
最近的现有父级
,或直接委托给
文档
(它是所有其他元素的父级)

或:


您使用的是哪个jquery版本?即使
live
已被弃用(并在1.9.0上删除),它仍应在1.8及更旧版本上运行。使用jQuery 1.8在此处运行良好。
标记是
mydiv
的直接子项吗?我正在使用jquery 1.8.3…哇。。如果它是JSFIDLE,那么让我再次搜索我的整个代码。。切换到
on()
的问题可能是什么?正如其他人所示,我猜
在DIV中有其他祖先,选择器使用
时出错,您使用的是哪个jquery版本?即使
live
已被弃用(并在1.9.0上删除),它仍应在1.8及更旧版本上运行。使用jQuery 1.8在此处运行良好。
标记是
mydiv
的直接子项吗?我正在使用jquery 1.8.3…哇。。如果它是JSFIDLE,那么让我再次搜索我的整个代码。。切换到
on()
的问题可能是什么,我猜
在DIV中有其他祖先,选择器使用
是错误的
上使用
不会将处理程序委派给
标记,也不会代替
live
,因为在
上使用
不会将处理程序委派给
标记,也不会代替如果使用了jQuery 1.9.0版,则
上的
比jQuery 1.9版追溯得更远。
上的
比jQuery 1.9版追溯得更远。这是有效的!!奇怪的是,我使用的是1.8.3,所以live应该也能工作。。。不管怎样,谢谢…这很有效!!奇怪的是,我使用的是1.8.3,所以live应该也能工作。。。无论如何,谢谢。。。
 <a style="cursor:pointer;">Text 1</a>
<a style="cursor:pointer;">Text 2</a>
<a style="cursor:pointer;">Text 3</a>
$("#mydiv").on('click','a', function(){
  alert($(this).text());
});
$(document).on('click','#mydiv a', function(){
  alert($(this).text());
});