我使用jQuery动态生成锚标记。我已经为它添加了一个onclick属性,但当我点击链接时,onclick不会触发。
我正在生成如下链接:
$(document).ready(function() {
var attributes = {
"id": "xxx",
"onclick": "alert('xxxx');",
"href": "https://localhost/widget/TabTest.aspx#"
};
var link = $.create("a", attributes);
$(link).append("xxxx");
$("#WidgetContainer").append(link);
});
答案 0 :(得分:4)
使用jQuery的click()函数设置click属性。
var attributes = {
"id": "xxx",
"href": "https://localhost/widget/TabTest.aspx#"
};
var link = $.create("a", attributes);
$(link).append("xxxx").click(function(){ alert("HELLO"); });
$("#WidgetContainer").append(link);
你所做的可能会在某些浏览器中运行,但不会在其他浏览器中运行(我在FF中工作但在IE中失败)。通常,如果jQuery具有执行某些功能的功能,请使用它。
<小时/> 编辑: 为了回应Adam Backstrom对这个问题的评论,我认为我最好提供另一种选择。当我过去这样做时,我这样做了:
$("#someplace").wrapInner("<a href='#'></a>");
$("#someplace a").click(function() {
alert("Hello");
});
<小时/> 编辑2: 从评论到这篇文章,如何在一行中做到这一点(并不总是最好的想法):
$("<a id='xxx' href='https://localhost/widget/TabTest.aspx#'>xxxx</a>")
.click(function() { alert("Hello"); })
.appendTo($("#WidgetContainer"));
答案 1 :(得分:1)
如果您使用的是jQuery 1.3或更高版本,则可以使用“实时”事件绑定将点击事件附加到任何&lt; A&gt;您添加到网页的标记。 E.g:
$('a').live('click', function (evt) {
alert('Hello');
evt.preventDefault();
});
var link = $.create('a', {
'id' : 'xxx',
'href' : 'http://localhost/'
});
$('#container').append(link);