Jquery .live()函数将事件绑定到错误的DOM元素
我有以下代码:Jquery .live()函数将事件绑定到错误的DOM元素,jquery,Jquery,我有以下代码: $('#id').find('select').live('keypress', function (event) { if (event.which === 13) { event.preventDefault(); $(this).closest('.ui-dialog').find('.ui-button:first').click(); } }); 现在,在特定页面上,id='id'的元素不存在。当我打开一个带有其他id的
$('#id').find('select').live('keypress', function (event) {
if (event.which === 13) {
event.preventDefault();
$(this).closest('.ui-dialog').find('.ui-button:first').click();
}
});
现在,在特定页面上,id='id'的元素不存在。当我打开一个带有其他id的jQueryUI对话框,并在对话框中的选择列表上按enter键时,会触发first.UI按钮的单击事件。为什么?你能试试这个功能吗
$( "body" ).on( "keypress", "#id select", function(event) {
...
});
对话框中必须有id='id'的元素。@Wilmer,不,对话框中没有id='id'的元素。页面中任何时候都有id='id'的元素吗?@Wilmer,当用户单击特定链接时,该元素显示在页面上。另外,这是一个单独的div。为什么按键事件绑定到所有对话框?在这个事件函数中放一个console.log'select-keypres'或其他东西,看看它是否被调用。。。默认情况下,可能会单击该按钮。