Javascript 谷歌浏览器&x27;s bug onclick of<;选择>;元素
HTML: 他们中没有一个是在Chrome上工作的,似乎只是Chrome而已 发生了什么事Javascript 谷歌浏览器&x27;s bug onclick of<;选择>;元素,javascript,html,google-chrome,webkit,click,Javascript,Html,Google Chrome,Webkit,Click,HTML: 他们中没有一个是在Chrome上工作的,似乎只是Chrome而已 发生了什么事 下面是jsfiddle:在select元素上放置一个事件处理程序,而不是选项,它将在所有浏览器中工作。使用change和keyup事件: document.getElementById('about').onclick = function(){ alert('normal onclick'); } $("#about").click(function(){ alert("jquery c
下面是jsfiddle:在
select
元素上放置一个事件处理程序,而不是选项
,它将在所有浏览器中工作。使用change
和keyup
事件:
document.getElementById('about').onclick = function(){
alert('normal onclick');
}
$("#about").click(function(){
alert("jquery click")
});
为什么更改
和键控
事件都会发生?change
事件处理鼠标交互,当您使用箭头键或其他键在选择器中上下导航时,keyup
使选择器做出响应
或者,您可以省略keyup
,只监听change
事件。然后,如果打开选择器并使用光标键上下导航,则在按Enter键之前不会发生任何事情。这将触发一个change
事件
在许多情况下,在使用键盘上下浏览列表时,向用户提供即时反馈会更有帮助,而听change keyup
可以做到这一点
为什么要更改而不是单击?您可以使用这两个选项中的任何一个,但只要单击,就会触发单击事件,即使该值实际上没有更改。OTOH,您可能希望即使用户只单击已选择的选项,事件也会触发,因此在这种情况下,单击
事件会更好
实际上,在对它进行了更多的测试之后,单击
与更改
问题相比,还有更多的问题。普通鼠标与选择列表的交互允许两种稍微不同的使用方式:
在选择器上按鼠标,按住它,将其滚动到一个选项上,最后将其释放
在选择器上按下鼠标并将其释放。选择器将打开以显示选项。将鼠标滚动到选项上(此时按钮未按下),最后单击某个选项上的按钮
如果您收听的是单击
事件,而不是更改
,则在案例2中,事件会在初始单击和选择选项的最后单击时触发两次。因此,您可以使用单击
或更改
,具体取决于您是希望同时单击还是仅选择最终选项
我必须补充一点,我没有在这里彻底测试单击,但是我已经非常彻底地测试了更改和更改keyup
,所以我更信任这些。在选择元素而不是选项上放置一个事件处理程序,它将在所有浏览器中工作。使用change
和keyup
事件:
document.getElementById('about').onclick = function(){
alert('normal onclick');
}
$("#about").click(function(){
alert("jquery click")
});
为什么更改
和键控
事件都会发生?change
事件处理鼠标交互,当您使用箭头键或其他键在选择器中上下导航时,keyup
使选择器做出响应
或者,您可以省略keyup
,只监听change
事件。然后,如果打开选择器并使用光标键上下导航,则在按Enter键之前不会发生任何事情。这将触发一个change
事件
在许多情况下,在使用键盘上下浏览列表时,向用户提供即时反馈会更有帮助,而听change keyup
可以做到这一点
为什么要更改而不是单击?您可以使用这两个选项中的任何一个,但只要单击,就会触发单击事件,即使该值实际上没有更改。OTOH,您可能希望即使用户只单击已选择的选项,事件也会触发,因此在这种情况下,单击
事件会更好
实际上,在对它进行了更多的测试之后,单击
与更改
问题相比,还有更多的问题。普通鼠标与选择列表的交互允许两种稍微不同的使用方式:
在选择器上按鼠标,按住它,将其滚动到一个选项上,最后将其释放
在选择器上按下鼠标并将其释放。选择器将打开以显示选项。将鼠标滚动到选项上(此时按钮未按下),最后单击某个选项上的按钮
如果您收听的是单击
事件,而不是更改
,则在案例2中,事件会在初始单击和选择选项的最后单击时触发两次。因此,您可以使用单击
或更改
,具体取决于您是希望同时单击还是仅选择最终选项
我必须补充一点,我没有在这里彻底测试点击
,但我已经非常彻底地测试了更改
和更改键控
,所以我更信任这些。我不认为你可以为Chrome的
添加点击处理程序。我肯定在什么地方读过。将尝试查找参考。这是否仅发生在Chrome上?您的代码在IE9Old文章中有效,但我找到了它-尽管他们的演示中有一个Chrome可用的onclick
…可能是Chrome的重复项,但我认为您无法为Chrome的
添加单击处理程序。我肯定在什么地方读过。将尝试查找参考。这只发生在Chrome上吗?您的代码在IE9Old文章中有效,但我找到了它-尽管他们的演示中有一个Chrome可用的onclick
…可能与。。。请阅读以上评论,我不是在问怎么做。。。我在问这是不是一个错误。。。不知何故,我没有足够的声誉来投票否决奥米切尔,你确定当使用键盘选择选项时,更改
事件没有被触发吗?“好东西,谢谢……我想我只是在单击时检查选择本身的值”->这是我的一个选择comments@yefrem-我添加了一些关于事件的细节。使用光标键或键时不会触发change
事件
$('#page').on( 'change keyup', function() {
var selected = this.value;
if( selected == 'about' )
alert( 'About!' );
});