触发委派事件的最近按钮

时间:2017-06-14 13:08:34

标签: javascript jquery

我通过我的代码重复了以下html,在按下enter时激活了正确按钮上的'gobutton'类:

<div>
  <input type="text">
  <button id="btnGO" class="gobutton">GO</button>
</div>

一块jquery代码正确触发,但不会激活gobutton。我猜这是因为最近的功能由于授权而无效,但我不确定?

$('body').on('keypress', 'input:text', function (e) {
    var key = e.which;
    if(key == 13) {
        e.preventDefault();
        $(this).closest('.gobutton').click();
    }
});

2 个答案:

答案 0 :(得分:1)

button是输入元素的兄弟,而不是父元素,因此.closest()在遍历DOM层次结构时不起作用。

您可以使用.closest()遍历公共父级,然后使用.find()定位所需的元素。

使用

 $(this).closest('div').find('.gobutton').click();
 //$(this).next('.gobutton').click();
 //$(this).siblings('.gobutton').click();

您还可以使用.siblings().next()

答案 1 :(得分:0)

您可以在此处使用下一个方法是详细信息 .next()

示例:$(this).next('.gobutton').click();