我通过我的代码重复了以下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();
}
});
答案 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();