我是JQuery的新手,我正在尝试使用它在旧的Web应用程序中实现增强功能。
我正在从服务器收集字符串列表,并在其自己的锚标记中呈现每个字符串,以便它们出现在逗号分隔列表中。我将生成的标记分配给span的内部html:
$.getJSON("http://domain/restOfURL",
function(data){
var anchorString = "";
$.each(data.companies, function(i,companies){
if (i > 0)
{
anchorString += ", ";
}
anchorString += '<a class="sr" href="#">' + companies + '</a>';
});
$("#anchorsListSpan").html(anchorString);
});
});
所有这些都有效,我可以在实时网页上看到锚点。标记在Firebug中看起来像这样:
<span id="anchorsListSpan">
<a class="sr" href="#">ABC</a>
,
<a class="sr" href="#">Apple</a>
,
<a class="sr" href="#">Apollo</a>
</span>
我遇到的问题是任何生成的锚点都不会导致我的点击事件触发:
$("a.sr").click(function(){
alert("link clicked");
});
我注意到如果我在该div中硬编码类似的锚点,那么click事件就会触发。出于某种原因,我以编程方式添加的内容不会导致单击事件触发。
有谁看到我在这里做错了什么?
感谢您的帮助,
答案 0 :(得分:3)
使用live()而不是click():
$("a.sr").live("click", function(){
alert("link clicked");
});
答案 1 :(得分:2)
尝试使用$("a.sr").live('click', function() {//...});