0

所以我有一个输入字段,当你用鼠标与之交互时,它基本上不起作用。这是因为:

  • 加载后通过在编辑模式下展开该项目来创建输入
  • 为了展开项目,我们在 li 上使用 click 事件,它是标题的父级,被输入替换
  • 由于应用程序的工作方式,我们需要使用 live 而不是 click,这会阻止使用 stopPropagation()

所以我们正在使用:

$('li').live("click",function(e) {
    if ($(e.target).is('input') ) { return; }

    // do stuff
});

然后正因为如此,显然每当鼠标尝试单击输入时,无论是移动光标,突出显示其内容等,它都会忽略它。

如果我删除目标行,当我单击输入时,它会关闭 li。

所以...我的问题:知道如何在不关闭 li 的情况下使输入可点击,并且仍然能够使用 live 而不是点击吗?

4

2 回答 2

0

您仍然可以使用e.stopImmediatePropagation()

http://jsfiddle.net/NJ9cb/

于 2012-05-30T12:16:20.403 回答
0

嗨,如果我说得对,您想阻止事件传播,但您不能使用 stopPropagation() 方法。检查 live 方法的文档,如果你想停止传播,你的方法应该返回 false;

查看实时方法的 api 文档:live()

于 2012-05-30T12:06:24.293 回答