将JS脚本从1.4.3更新到1.9.1

时间:2013-11-09 17:35:16

标签: javascript jquery html

我有一个JS脚本,它使用jquery 1.4.3动态创建和删除输入文本元素 我需要开始使用jquery 1.9.1

从我能看到的

       .live() 

功能需要改为

      .on() 

但只有一半的功能有效..删除功能不再有效可以有人看到原因吗?

完整的源代码位于下方的jsfiddle链接中。

http://jsfiddle.net/jaredwilli/tZPg4/4/

    $(function() {
    var scntDiv = $('#p_scents');
    var i = $('#p_scents p').size() + 1;

    $('#addScnt').live('click', function() {
            $('<p><label for="p_scnts"><input type="text" id="p_scnt" size="20" name="p_scnt_' + i +'" value="" placeholder="Input Value" /></label> <a href="#" id="remScnt">Remove</a></p>').appendTo(scntDiv);
            i++;
            return false;
    });

    $('#remScnt').live('click', function() { 
            if( i > 2 ) {
                    $(this).parents('p').remove();
                    i--;
            }
            return false;
      });
     });

1 个答案:

答案 0 :(得分:1)

您必须更改一些代码,如下所示:

$(document).on('click','#remScnt', function () {
    ...
});

而不是

$('#remScnt').live('click', function () {
    ...
});

像这样,只要将#remScnt添加到dom中,点击处理程序就会绑定到该元素。

此外,如果您在页面中有多个class元素,则应使用id代替remScntid应该是唯一的。

在这里摆弄: http://jsfiddle.net/tZPg4/7313/