我需要在同一个但来自不同 HTML 元素的事件中触发 2 个事件。我的意思是我有搜索文本框和一个搜索按钮。我需要keyup
在搜索文本框内或单击搜索按钮时显示搜索结果。
我在堆栈溢出时找到了这个答案,但它只能由一个元素和多个事件使用:
$('#element').on('keyup keypress blur change', function(e) {
// e.type is the type of event fired
});
是否有可能或者我应该复制我的脚本但更改每个元素的事件?
我正在使用的是:
$('#searchBtn').on('click',function()
{
surfData();
});
$('#searchTxt').on('keypress',function()
{
surfData();
});
您可以使用它,但是surfData
当 searchBtn 元素注册按键事件以及单击 searchTxt 元素时(后者是用户选择的一种非常常见的方式),它会产生触发回调(和您的函数)的副作用一个文本框)。我相信@halleron 会遇到同样的问题。
$('#searchBtn, #searchTxt').on('click keypress',function()
{
surfData();
});
为了避免这些副作用,您需要保留您拥有的代码(这已经非常简化了;下面是我能想到的唯一更简单的版本)
$('#searchBtn').click(surfData);
$('#searchTxt').keypress(surfData);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句