停止传播jquery

停止传播jquery,jquery,jeditable,event-propagation,Jquery,Jeditable,Event Propagation,我有这段代码,但是当我克隆一个元素时,动作也被克隆了。我想要的只是每个元素的单独操作。您可以在演示中看到问题 <script type="text/javascript"> $(document).ready(function() { $('.edit').editable('http://save.php', { indicator : 'Saving...', submit : 'OK', cancel : 'Canc

我有这段代码,但是当我克隆一个元素时,动作也被克隆了。我想要的只是每个元素的单独操作。您可以在演示中看到问题

<script type="text/javascript">
$(document).ready(function() {
    $('.edit').editable('http://save.php', {
        indicator : 'Saving...',
        submit    : 'OK',
        cancel : 'Cancelar',
    }); 
});


$(document).ready(function () {
    $('#btnAdd').live('click', function(){
        var num = $('.clonedInput').length;
        var newNum = new Number(num + 1);

        var newElem = $('#input' + num).clone(true).prop('id', 'input' + newNum);

        newElem.children(':text').prop('name', "myformdata[job][]").prop('job', 'job').val('');

        $('#input' + num).after(newElem);
        $('#btnDel').prop('disabled', '');

        if (newNum == 4) $('#btnAdd').prop('disabled', 'disabled');

    });

    $('#btnDel').live('click', function(){
        var num = $('.clonedInput').length;

        $('#input' + num).remove();
        $('#btnAdd').prop('disabled', '');

        if (num - 1 == 1) $('#btnDel').prop('disabled', 'disabled');

    });

    $('#btnDel').prop('disabled', 'disabled');

});
</script>

    <div class="clonedInput" id="input1">
        <span style="float: left;">job</span>
        <div class="edit" id="job="myformdata[job][]">Job</div>
    </div>

    <div id="copy">
        <input class="format" type="button" id="btnAdd" value="Ad" />
        <input class="format" type="button" id="btnDel" value="Re" />
    </div>

$(文档).ready(函数(){
$('.edit')。可编辑('http://save.php', {
指标:“正在保存…”,
提交:“OK”,
取消:'Cancelar',
}); 
});
$(文档).ready(函数(){
$('#btnAdd').live('click',function()){
var num=$('.clonedInput').length;
var newNum=新的数字(num+1);
var newElem=$('#input'+num).clone(true).prop('id','input'+newNum);
newElem.children(':text').prop('name','myformdata[job][]).prop('job','job').val('');
$('#input'+num).after(newElem);
$('btnDel').prop('disabled','');
if(newNum==4)$('#btnAdd').prop('disabled','disabled');
});
$('btnDel').live('click',function(){
var num=$('.clonedInput').length;
$('#输入'+num).remove();
$('btnAdd').prop('disabled','');
如果(num-1==1)$('btnDel').prop('disabled','disabled');
});
$('btnDel').prop('disabled','disabled');
});
工作

如果不想克隆数据和处理程序,请使用
.clone()
而不是
.clone(true)

如果希望单个克隆元素应用插件,则在克隆元素后应用插件

...clone().editable('http://save.php', {
            indicator : 'Saving...',
            tooltip   : 'Click to edit...',
            submit    : 'OK',
            cancel : 'Cancelar'
        });

如果不想克隆数据和处理程序,请使用
.clone()
而不是
.clone(true)

如果希望单个克隆元素应用插件,则在克隆元素后应用插件

...clone().editable('http://save.php', {
            indicator : 'Saving...',
            tooltip   : 'Click to edit...',
            submit    : 'OK',
            cancel : 'Cancelar'
        });

RightSaid是正确的,只需使用不带任何参数的.clone(),它将不会克隆处理程序/数据

至于你的代码,我想这就是你想要的:


创建新元素时,必须将其设置为“可编辑”。无需在这些按钮上使用.live(),因为您没有创建这些按钮的新实例。

rightsay是正确的,只需使用.clone(),不带任何参数,它将不会克隆处理程序/数据

至于你的代码,我想这就是你想要的:


创建新元素时,必须将其设置为“可编辑”。无需在这些按钮上使用.live(),因为您没有创建这些按钮的新实例。

使用委托不活动。Live已经很久没有成为首选方法了。请使用代理而不是Live。Live已经很久没有成为首选方法了。我已经在克隆方面积累了很多经验,但没有一种能够正确地用于克隆元素。我已经在克隆方面积累了很多经验,但没有一种能够正确地用于克隆元素。