模糊和点击之间的竞争

时间:2011-08-14 12:21:35

标签: jquery events click blur

我的页面上有一个就地编辑textarea:它是一个平面div,直到用户点击进入编辑模式;然后它成为一个文本区域与save&取消按钮。保存功能由ajax工作,将值写入db。

预期的行为是用户能够编辑文本,单击textarea外的任何位置并触发保存功能,除非他们单击取消按钮,在这种情况下它不会保存。

我最初在textarea(触发保存)上有一个模糊事件,在取消按钮上有一个点击事件(没有);但是,至少在某些浏览器中,模糊事件会在点击之前触发,所以当它知道取消时,它已经在保存。

我可以延迟保存事件,但这有点蠢,而且我认为还有另一种方式。

我尝试过的一些事情:

  • 将stopImmediatePropagation放在click事件上(什么都不做)
  • 识别模糊事件的“relatedTarget”(返回null)
  • 将click事件切换为mousedown事件(不起作用)
  • 捕捉模糊事件的pageX和pageY以查看它们是否与取消按钮相交(它们返回未定义)

如果我找不到另一种方法,我会延迟,但我宁愿不以这种方式构建我的代码。有什么想法吗?

0 个答案:

没有答案