当我将一个函数绑定到一个$('a#link_id').click()
的链接然后我点击链接时,它会运行该函数,一切都没问题,但当我以另一种方式“激活”按钮时(即使用制表符聚焦)然后按下空格)它就行不通了。
它与$('select#dropbox_id').change()
的情况相同:当我用鼠标更改它但不用方向箭头更改它时它会起作用。有没有办法实现此whitout必须手动重新绑定$.keyup()
?我不知道,也许我只是错过了一个活动。
答案 0 :(得分:0)
您不需要任何类型的活动。
对于点击事件,当您使用鼠标或空格键单击元素时会发生此事件。如果在使用空格键时未触发单击事件,则可能是其他地方出现错误。
当您更改下拉框时,然后才会触发更改事件。当您使用箭头键更改下拉框的选定值时,不会立即选择该值,仅当控件的焦点丢失时,该值被指定为其控件的选定值,因此,更改事件火灾。
如果你想用箭头键实现事件触发机制,那么你将不得不使用keyup / keydown事件,没有别的办法(据我所知)。此外,您可以检测到按下的键,以确定它是否是按下的方向箭头之一。
如果您仍需要任何帮助,可以在问题中附上代码。
我希望这会有所帮助。
答案 1 :(得分:0)
我猜您错过了focus
或focusin
事件。在select
元素上,例如,当您通过键盘输入向下滚动列表时,不会触发本机事件。一旦focus
获得焦点,focusin
和element
将会触发。
您无法将此类事件类型绑定到options
,至少不能将其绑定到交叉浏览器。因此,如果您真的想要捕获它,则必须将keydown
或keyup
事件绑定到父select
元素。