2

我有一个选择字段,该字段具有关于 keyup 和更改的逻辑来做一些事情。有没有办法检查它是如何改变的?

例如:我只希望在鼠标更改逻辑或按下回车键时触发逻辑。

对于那些寻找我的确切解决方案的人

http://aaronscherer.me/blog/2013/07/31/jquery-roll-to-next-input/

4

3 回答 3

3

是的 - 您可以在 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)。

于 2013-07-30T23:17:28.593 回答
1

如果你想知道事件的类型,你可以简单地使用对象的type属性event

$('select').on('change keyup ...', function(event) {
   var type = event.type;
   // ...
}); 
于 2013-07-30T23:40:05.543 回答
0

您可以使用 onchange 事件,如下所示:

$(document).on('change','#your_select',function() {
    //do something
})
于 2013-07-30T23:19:48.803 回答