我有一个选择字段,该字段具有关于 keyup 和更改的逻辑来做一些事情。有没有办法检查它是如何改变的?
例如:我只希望在鼠标更改逻辑或按下回车键时触发逻辑。
对于那些寻找我的确切解决方案的人
http://aaronscherer.me/blog/2013/07/31/jquery-roll-to-next-input/
我有一个选择字段,该字段具有关于 keyup 和更改的逻辑来做一些事情。有没有办法检查它是如何改变的?
例如:我只希望在鼠标更改逻辑或按下回车键时触发逻辑。
对于那些寻找我的确切解决方案的人
http://aaronscherer.me/blog/2013/07/31/jquery-roll-to-next-input/
是的 - 您可以在 DOM 中的任何元素上监听任何事件。看看这个小提琴作为起点。这是您可以监听的鼠标事件和键盘事件的完整列表。
HTML
<select class="my-select-1">
<option value="1">First</options>
<option value="2">Second</options>
</select>
<select class="my-select-2">
<option value="1">A choice</options>
<option value="2">Another choice</options>
</select>
jQuery
$(document).ready(function() {
$(".my-select-1").on("click", function(event){
alert('Do something - click event');
});
$('.my-select-2').on('keypress', function(e) {
var code = (e.keyCode ? e.keyCode : e.which);
if(code == 13) { //Enter keycode
alert('Do something - enter key press');
}
});
});
在上面的示例中,$(".my-select-1)
是选择器,它可以是任何东西(ID、元素类型等)。有关选择器的更多信息,请点击此处。下一部分,.on("mousedown"
将一个或多个事件的事件处理函数附加到所选元素 - 在本例中只是一个事件,mousedown
. 关于这里的更多信息。
第二个例子有点花哨,因为我们必须确定按下了哪个键,但除此之外使用相同的概念。你可以在这篇文章中找到一个非常冗长的讨论,但请注意从 1.7 开始on
是首选方法(不是bind
)。
如果你想知道事件的类型,你可以简单地使用对象的type
属性event
:
$('select').on('change keyup ...', function(event) {
var type = event.type;
// ...
});
您可以使用 onchange 事件,如下所示:
$(document).on('change','#your_select',function() {
//do something
})