Остановить распространение jquery
У меня есть этот код, но когда я клонирую элемент, действие также клонируется. То, что я хочу, это просто отдельные действия для каждого элемента. Вы можете увидеть проблему в демо
<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>
2 ответа
RightSaid верен, просто используйте.clone() без каких-либо параметров, и он не будет клонировать обработчики / данные.
Что касается вашего кода, я думаю, что это то, что вы хотели: http://jsbin.com/unebex/11/
Вы должны установить новые элементы в "редактируемые" по мере их создания. Нет необходимости использовать.live() для этих кнопок, так как вы не создаете новые экземпляры этих кнопок.
Если вы не хотите клонировать данные и обработчики, используйте .clone()
вместо .clone(true)
,
Если вы хотите, чтобы к отдельному клонированному элементу был применен плагин, примените его после клонирования элемента.
...clone().editable('http://save.php', {
indicator : 'Saving...',
tooltip : 'Click to edit...',
submit : 'OK',
cancel : 'Cancelar'
});