Это мой фрагмент кода:JQuery - после того, как() - функция срабатывает дважды
$.ctrl('J', function() {
$("#"+currentId).after('<div contentEditable="true">test</div>');
});
После его выполнения, 2 дивы с «тест» будет добавлен вместо 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;
});
};
Спасибо заранее.
Приветствия
Edit:
может быть, это что-то делать с этим:
$('div[id|="edid"]').focus(function() {
$('div[id|="edid"]').removeClass('onFocus');
$(this).addClass('onFocus');
var currentId = $(this).attr('id');
});
Кажется, что все нормально: http://jsfiddle.net/6RPhs/. – pimvdb
Убедитесь, что вы не вызываете '$ .ctrl' дважды. Это может вызвать поведение, которое вы описываете. – cheeken
Это странно. Возможно, ему есть что-то с помощью $ ("#" + currentId). Я редактирую его в проводке моего происхождения. – user1126272