第1973天:label里包含两个input的情形

本来的结构:

<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)
}

RSS

上一篇:

下一篇:

发表评论

电子邮件地址不会被公开。 必填项已用*标注