jquery即时新元素

时间:2011-07-08 03:06:10

标签: jquery

一旦用户点击按钮,它就会动态创建新的输入文本。

让我们假设这两个输入是即时创建的。

<input id="txtImageSource_1" type="text">
<input id="txtImageSource_2" type="text">

现在简化我的问题。我需要在输入文本时显示输入的id。这些2个元素已经动态创建。

我尝试了以下但不起作用。

    $('#' + $(this).attr('id')).live('keyup', function(){alert($(this).attr('id')));
                });

创建文本框

$("#add_image").click(function() { 
var i = ($('p.fields').length);
        $('<p class="fields" id="field_' + i + '"><input type="text" id="txtImageSource_' + i + '"/>"<input type="button" value="Delete" class="btnDelete" id="' + i + '"></p>').appendTo('#formelement');
  });   

3 个答案:

答案 0 :(得分:1)

$("#add_image").click(function()
{ 
    var i = ($('p.fields').length);

    $('<p class="fields" id="field_' + i + '"><input type="text" id="txtImageSource_' + i + '"/>"<input type="button" value="Delete" class="btnDelete" id="' + i + '"></p>').appendTo('#formelement');

    $("#txtImageSource_" + i).live('keyup', function()
    {
        // Do whatever you want to do

        alert( $(this).attr("id") );
    });
});

答案 1 :(得分:0)

        $("#add_image").click(function () {
            var i = ($('p.fields').length);
            $('<p class="fields" id="field_' + i + '"><input class="img" type="text" id="txtImageSource_' + i + '"/><input type="button" value="Delete" class="btnDelete" id="' + i + '"/></p>').appendTo($('#formelement'));
            $('#txtImageSource_' + i ).live("keyup", function () {
                alert($(this).attr("id"));
            });
            return false;
        });  

答案 2 :(得分:0)

我不确定此代码中第一个$(this)的来源:

$('#' + $(this).attr('id')).live('keyup', function(){alert($(this).attr('id')));
            });

但是如果是来自onFocus或点击绑定,你可以像这样消除选择器的其余部分:

$(this).live('keyup', function(){alert($(this).attr('id')));
            });