jQuery - after () - функция срабатывает дважды - PullRequest
1 голос
/ 03 января 2012

Это мой фрагмент кода:

$.ctrl('J', function() {

    $("#"+currentId).after('<div contentEditable="true">test</div>'); 

});

После запуска, вместо 1. будет добавлено 2 деления с «тестом».

Чего мне не хватает?

Это функция CTRL:

$.ctrl = function(key, callback, args) {

    var isCtrl = false;

    $(document).keydown(function(e) {
        if (!args) args = [];
        if (e.ctrlKey) isCtrl = true;
        if (e.keyCode == key.charCodeAt(0) && isCtrl) {
            callback.apply(this, args);
            return false;
        }
    }).keyup(function(e) {
        if (e.ctrlKey) isCtrl = false;
    });
};

Заранее спасибо.

Привет

Edit:

возможно, это как-то связано с этим:

$('div[id|="edid"]').focus(function() {


       $('div[id|="edid"]').removeClass('onFocus'); 

       $(this).addClass('onFocus'); 

       var currentId = $(this).attr('id');
});

Ответы [ 2 ]

1 голос
/ 27 июня 2012

Вы, вероятно, два раза включили jQuery в свой HTML-код. Как это:

<script type="text/javascript" src="/scripts/jquery.min.js"></script>
<script type="text/javascript" src="/scripts/jquery.min.js"></script>
1 голос
/ 24 февраля 2012

У меня была похожая проблема.Может быть, вы используете старую версию jquery?

Главное исправление в JQuery 1.4.4 - Функция, связанная с событием готовности документа, теперь будет запускаться один раз (дважды запускалась).

Что нового в JQuery 1.4.4

...