我在代码中重复了以下html,在正确的按钮上带有“ gobutton”类,可以在按下Enter键时激活它:
<div>
<input type="text">
<button id="btnGO" class="gobutton">GO</button>
</div>
并能正确触发但不会激活gobutton的jquery代码块。我猜这是因为最接近的功能由于委派而无法使用,但是我不确定吗?
$('body').on('keypress', 'input:text', function (e) {
var key = e.which;
if(key == 13) {
e.preventDefault();
$(this).closest('.gobutton').click();
}
});
最佳答案
button
是输入元素的同级元素,而不是父元素,因此.closest()
在遍历DOM层次结构时将不起作用。
您可以使用.closest()
遍历到公共父对象,然后使用.find()
定位所需的元素。
采用
$(this).closest('div').find('.gobutton').click();
//$(this).next('.gobutton').click();
//$(this).siblings('.gobutton').click();
您也可以使用
.siblings()
或.next()