我有一个选择字段,在keyup上有逻辑,并且更改,以执行操作。有没有办法检查它是如何改变的?
例如:我只希望在用鼠标更改逻辑时触发逻辑,或者按下Enter键。
对于那些寻找我的确切解决方案的人
http://aaronscherer.me/blog/2013/07/31/jquery-roll-to-next-input/
答案 0 :(得分:3)
是 - 您可以侦听DOM中任何元素的任何事件。查看this fiddle作为起点。这是您可以收听的full list of mouse events和keyboard events。
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,元素类型等)。有关选择器的更多信息here。下一部分.on("mousedown"
将一个或多个事件的事件处理函数附加到所选元素 - 在这种情况下只是一个事件mousedown
。有关here的更多信息。
第二个例子,有点花哨,因为我们必须确定按下哪个键,但除此之外使用相同的概念。您可以在this post上找到关于此问题的非常冗长的讨论,但请注意,从on
开始,bind
是首选方法(不是{{1}})。
答案 1 :(得分:1)
如果您想知道事件的类型,只需使用type
对象的event
属性:
$('select').on('change keyup ...', function(event) {
var type = event.type;
// ...
});
答案 2 :(得分:0)
您可以使用onchange事件,如下所示:
$(document).on('change','#your_select',function() {
//do something
})