остановить распространение jquery - PullRequest
1 голос
/ 13 декабря 2011

У меня есть этот код, но когда я клонирую элемент, действие также клонируется.То, что я хочу, это просто отдельные действия для каждого элемента. Вы можете увидеть проблему в демо

<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 ]

1 голос
/ 13 декабря 2011

Если вы не хотите клонировать данные и обработчики, используйте .clone() вместо .clone(true).

Если вы хотите, чтобы на отдельный клонированный элемент был применен плагин, примените его послемы клонировали элемент.

...clone().editable('http://save.php', {
            indicator : 'Saving...',
            tooltip   : 'Click to edit...',
            submit    : 'OK',
            cancel : 'Cancelar'
        });
0 голосов
/ 13 декабря 2011

RightSaid верен, просто используйте .clone () без каких-либо параметров, и он не будет клонировать обработчики / данные.

Что касается вашего кода, я думаю, это то, что вы хотели: http://jsbin.com/unebex/11/

Вы должны установить новые элементы в «редактируемые» при их создании.Нет необходимости использовать .live () для этих кнопок, поскольку вы не создаете новые экземпляры этих кнопок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...