0

我有一个主页,我在其中定义了一个 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>

任何人请告诉我我做错了什么?

谢谢,

4

3 回答 3

3

因为您正在动态加载内容DIV with id "mydiv"(通过ajax)......委托事件上使用

$("#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());
});
于 2013-01-25T11:46:13.260 回答
1

你可以这样使用。演示

$(document).ready(function(){

$("a").on('click',function(){
  alert($(this).text());
});

});

html

 <a style="cursor:pointer;">Text 1</a>
<a style="cursor:pointer;">Text 2</a>
<a style="cursor:pointer;">Text 3</a>
于 2013-01-25T11:49:42.167 回答
1

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

你必须到delegate the eventnearest existing parent直接到document(这是所有其他元素的父级)。

$("#mydiv").on('click','a', function(){
  alert($(this).text());
});

或者:

$(document).on('click','#mydiv a', function(){
  alert($(this).text());
});
于 2013-01-25T11:53:06.543 回答