我试图创建一个新的div每一个文本字段包含在最后一个div时间失去焦点,但只有当第一个div文本字段失去焦点(而不是上次的)添加一个新的div。

下面是我的代码:

    $(function() {
          $(':text:last').blur(function() {
            $('<div class="line"><span>data: </span><input type="text"/></div>')
            .appendTo($('#lineStack'));
        });
    }); 

HTML:

<div id="lineStack">
    <div class="line">
        <span>data: </span><input type="text" />
    </div>
</div>

回答:感谢尼克!你的回答工作。我一直在努力,以纪念你的岗位作为答案,但它不工作。不知道为什么:)

有帮助吗?

解决方案

可以做到这一点,而不是(需要的jQuery 1.4+,否则blur气泡不被处理):

$(function() { 
  $(':text:last').live('blur', function() { 
    $('#lineStack').append('<div class="line"><span>data: </span><input type="text"/></div>'); 
  }); 
});

您当前选择获取元素和重视的事件为元素(其他人不存在尚未,所以它的:last)。你想要做的是有模糊火不管什么时候,如果它是最后一个加入的元素,.live()会处理的。 在这里看到的工作示例

其他提示

当该事件的分配选择器仅被评估。尝试类似

$(function() {
    $(':text').live("blur", function() {
        if ($(this).is(':last')){
            $('<div class="line"><span>data: </span><input type="text"/></div>').appendTo('#lineStack');
        }
    }); 
});

这样,每次:文本获取事件(我们使用现场功能,以确保即在创建时它会自动分配给新的元素),但是我们使用就是功能请确保选择了一个真的是最后一个。

(I也摆脱了在appendTo。jQuery函数像appendTo冗余$呼叫可以采取一个选择字符串作为参数的。)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top