本来的结构:
<label>
<input type=”radio” />
选择radio
<input type=”text” />
</label>
这样会有个问题,点击 input:text 时无法聚焦,改成如下的方法:
html 结构:
<span>
<label>
<input type=”radio” />
选择radio
</label>
<input type=”text” class=”js-text-input” />
</span>
jquery:
$(‘.js-text-input’).on(‘click’, function () {
$(this).parent().find(‘:radio’).prop(‘checked’, true);
});
如果遇到像 backbone 这样的会重新渲染模板的情形时,不能用 $(this),需用实例 $(‘.js-text-input’)
$(‘.js-text-input’).on(‘click’, function () {
$(‘.js-text-input’).parent().find(‘:radio’).prop(‘checked’, true);
});
也可以考虑用延时来实现:
function editInput() {
setTimeout(function () {
$(‘.js-text-input’).focus();
}, 100)
}
发表评论