jQuery - after() - 函数触发两次

时间:2012-01-03 13:35:33

标签: javascript jquery jquery-after

这是我的代码段:

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

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

});

运行之后,将添加带有“test”的2个div而不是1。

我错过了什么?

这是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;
    });
};

提前谢谢。

问候

编辑:

也许它与此有关:

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


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

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

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

2 个答案:

答案 0 :(得分:1)

我遇到了类似的问题。可能是你正在使用一个旧的jquery版本?

  

JQuery 1.4.4中的主要修正    - 绑定到文档就绪事件的函数现在将触发一次(它   发射了两次)。

What’s New in JQuery 1.4.4

答案 1 :(得分:1)

您可能在HTML代码中包含两次jQuery。像这样:

<script type="text/javascript" src="/scripts/jquery.min.js"></script>
<script type="text/javascript" src="/scripts/jquery.min.js"></script>