我在代码中重复了以下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()

10-04 22:18