在jQuery中有类似$('#link_id')。activate()的东西吗?

时间:2010-07-06 05:37:57

标签: jquery

当我将一个函数绑定到一个$('a#link_id').click()的链接然后我点击链接时,它会运行该函数,一切都没问题,但当我以另一种方式“激活”按钮时(即使用制表符聚焦)然后按下空格)它就行不通了。

它与$('select#dropbox_id').change()的情况相同:当我用鼠标更改它但不用方向箭头更改它时它会起作用。有没有办法实现此whitout必须手动重新绑定$.keyup()?我不知道,也许我只是错过了一个活动。

2 个答案:

答案 0 :(得分:0)

您不需要任何类型的活动。

对于点击事件,当您使用鼠标或空格键单击元素时会发生此事件。如果在使用空格键时未触发单击事件,则可能是其他地方出现错误。

当您更改下拉框时,然后才会触发更改事件。当您使用箭头键更改下拉框的选定值时,不会立即选择该值,仅当控件的焦点丢失时,该值被指定为其控件的选定值,因此,更改事件火灾。

如果你想用箭头键实现事件触发机制,那么你将不得不使用keyup / keydown事件,没有别的办法(据我所知)。此外,您可以检测到按下的键,以确定它是否是按下的方向箭头之一。

如果您仍需要任何帮助,可以在问题中附上代码。

我希望这会有所帮助。

答案 1 :(得分:0)

我猜您错过了focusfocusin事件。在select元素上,例如,当您通过键盘输入向下滚动列表时,不会触发本机事件。一旦focus获得焦点,focusinelement将会触发。

您无法将此类事件类型绑定到options,至少不能将其绑定到交叉浏览器。因此,如果您真的想要捕获它,则必须将keydownkeyup事件绑定到父select元素。