有这样一个应用,即:
一个div中有多个子div垂直排列。当按↑时,选中项从当前项移动到上一项。按↓时反之。
div被选中之后背景色变红,没有被选中的项背景色为白色。我使用jquery实现,用的是keypress事件,判断keyCode是38(↑)还是40(↓)。
之所以不用keyup事件,是因为我希望在按住↑或↓时,能连续移动。而keyup事件只能移动一次,且按住无效。
在FireFox3.5下运行正常。但到IE8下失效,按↑按↓都没反应,不但按住无效,单次按键也没反应。请问这是什么原因?是不是IE8对keypress事件不支持,或有别的含义?
应该如何修改,以便兼容FF和IE8?

解决方案 »

  1.   

    FF的事件模型支持的是DOM标准,IE采用的是自己的事件模型标准。
    keypress事件,keyCode:
    (1)FF(DOM下)表示按键的数字代码,因此40,38有效
    (2)IE下,表示按键的unicode字符。因此在IE下40,38不能正常工作。
      

  2.   

    ie8和ff不一样的机制,这个首先要判断能不能得到相应的keyCode。如果可以的话那么其余的代码也应该可以,楼主先试试能不能得到keycode,还是得到别的什么值