我在jQuery对话框中对SELECT元素使用可编辑-选项插件。可编辑-选项允许选择框,用户可以在其中编辑选项元素(顾名思义)。
可编辑选项文档说,“用户可以通过按转义来取消更改。”
问题是ESC按键事件要么被传播到select控件所在的对话框中,要么独立地被检测到,它不仅取消了对用户正在编辑的特定项所做的更改,而且还取消了他们在对话框中可能进行的任何其他更改。不是一个愉快的用户体验。
我做了一些研究(主要是阅读这个问题及其导致的链接),并认为我应该在可编辑选项代码中的转义键事件处理中调用e.stopPropagation(),但这是行不通的。
我使用的是jQuery 1.7.1和jquery 1.8.16 (它应该修复上面链接中描述的问题,但当然,这只是对话框本身的问题,而不是可编辑的选项)。
有人能给我指明正确的方向吗?或者告诉我它是不是不可能修复,但是如果是这样的话,它会使可编辑选项变得不可用。我会继续我自己的研究,如果我发现了什么,我要么在这里添加它,要么回答我自己的问题。
发布于 2012-03-30 12:02:43
好吧,我想通了,就像我说的,这是答案。
事实证明,可编辑选项代码处理keyup事件,而jQuery UI对话框代码处理键下事件,当然,这是在前面发生的。因此,可编辑选项代码无法拦截事件。
我在可编辑选项中添加了一个按键处理程序,其中我调用了e.stopPropagation()和presto!问题解决了。
https://stackoverflow.com/questions/9946925
复制