Ceci est mon extrait de code:jQuery - après() - incendies de fonction deux fois
$.ctrl('J', function() {
$("#"+currentId).after('<div contentEditable="true">test</div>');
});
Après l'exécuter, 2 divs avec "test" seront ajoutés au lieu de 1.
Qu'est-ce que je manque ?
Ceci est la fonction 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;
});
};
Merci à l'avance.
Salutations
Edit:
peut-être qu'il a quelque chose à voir avec ceci:
$('div[id|="edid"]').focus(function() {
$('div[id|="edid"]').removeClass('onFocus');
$(this).addClass('onFocus');
var currentId = $(this).attr('id');
});
Cela semble fonctionner correctement: http://jsfiddle.net/6RPhs/. – pimvdb
Assurez-vous de ne pas appeler '$ .ctrl' deux fois. Cela pourrait provoquer le comportement que vous décrivez. – cheeken
C'est étrange. Peut-être qu'il a quelque chose à faire avec le $ ("#" + currentId). Je l'édite dans mon message d'origine. – user1126272