0

我有一个在页面加载之前添加的链接。这是代码:

<script type="text/javascript" language="javascript">

    myLink= '<a href="#" id="test" class="test" value="1">SomeLink</a>';
    $("#Control").append(myLink);

    $(document).ready(function() {
        $("a").click(function() {
            Id = $(this).attr("value");
            ShowId(Id);
        });

页面加载完成后,已验证链接是否正确显示。问题是当我点击链接时,该函数没有被调用。如果我单击属于原始页面的任何其他链接并且尚未通过 jquery 添加,则调用该函数。如果我使用 $("#test") 代替,行为是相同的。

当我通过 jquery 添加链接时,我需要做些什么不同的事情吗?

提前致谢。

4

2 回答 2

4

也许这是最正确的方法:

$(function() {
    $("<a />", {
        href: "#",
        id: "test",
        className: "test",
        text: "SomeList"
    }).data("value", "1").on("click", function() {
        var id = $(this).data("value");
        // ...
    }).appendTo("#Control");
});

请注意,该value属性对锚元素无效,因此我建议使用data它。

演示:http: //jsfiddle.net/N3vKS/

于 2013-01-27T20:43:49.590 回答
1
$('body').on('click', 'a', function() {
    // whatever
});

将选择器“body”更改为最高公共父级。

于 2013-01-27T20:45:42.873 回答