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
});

セレクターの「本体」を最も一般的な親に変更します。

于 2013-01-27T20:45:42.873 に答える