我使用Dynatree获取树视图,现在我想将焦点设置在dynatree title元素的输入字段中,但元素会失去焦点。
不幸的是我的代码不起作用。你可以在小提琴中看到它(http://jsfiddle.net/3nD7X/1/)。单击文本前面数字的最后一级时,将显示输入字段,但焦点在dynatree元素上设置。当我点击输入框时,焦点出现,然后当我的手指释放鼠标时(鼠标向上),它会再次消失。
$('#tree-team').on('click', '.seeding_list', function() {
var id = $(this).data('id');
$('#label_place_' + id).hide();
$('#input_place_' + id).show();
}).change(function() {
var id = $(this).data('id');
console.log("change seeding place");
});
$('#tree-team').on('mouseup', '.tree-editbox', function() {
return false;
});
$(document).mouseup(function() {
$('.tree-editbox').hide();
$('.tree-text').show();
});
答案 0 :(得分:1)
我对Dynantree并不熟悉,也许这很粗糙,但对我有用的是取代
$('#input_place_' + id).show().;
与
$('#input_place_' + id).blur(function(){$(this).focus()}).show().focus();
处理.blur()
事件可防止控件失去焦点,并使用上一个.focus()
实际设置焦点