Итак, ваша функция открытия работает, верно? Вы проверили, находит ли он #inp? Просто сделай
console.log($('#inp'));
И посмотрите, действительно ли элемент существует в тот момент, когда вызывается focus (). Если это не так, то, возможно, DOM не был завершен (я предполагаю, что ваша функция open () вызывается из обратного вызова Ajax, верно?).
Ajax-обратные вызовы «success» и «error» вызываются после завершения вызова, но не обязательно после завершения всех полученных DOM-манипуляций. Один (немного хакерский) способ, которым я решил эту проблему, заключался в задержке фокуса на несколько миллисекунд:
setTimeout(function () {
$(this).find("#inp").focus();
}, 50);
Это дает DOM немного времени для установки #inp.