2012-01-03 5 views
1

これは私のコードスニペットです:それを実行した後jQueryの - - の後に()関数火災は二回

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

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

}); 

、「テスト」との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

これはうまくいくようです:http://jsfiddle.net/6RPhs/ – pimvdb

+0

'$ .ctrl'を2回呼び出さないようにしてください。それはあなたが描いている振る舞いを引き出すかもしれません。 – cheeken

+0

それは変です。 $( "#" + currentId)に何かがあるかもしれません。私は私の起源の投稿でそれを編集しています。 – user1126272

答えて

1

私は同様の問題を持っていました。古いjqueryバージョンを使用している可能性がありますか? jQueryの1.4.4 で

主なバグ修正 - 文書readyイベントにバインドされた関数は今(それが 二回発射された)を1回発生します。

What’s New in JQuery 1.4.4

1

あなたはおそらく、あなたのHTMLコードでjQueryの2回を含めています。このように:

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