停止传播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已经很久没有成为首选方法了。我已经在克隆方面积累了很多经验,但没有一种能够正确地用于克隆元素。我已经在克隆方面积累了很多经验,但没有一种能够正确地用于克隆元素。