2012-08-16 135 views
2

我有一个应用程序,其中包含项目,可以包含子项目等。使emberjs事件只被调用一次

每个项目都有一个mouseDown事件,我希望能够用来点击并选择一个项目。

的问题是,当我点击子项目父母mouseDown事件也被调用。

如何停止这个所以mouseDown事件只被调用一次,或者如果那不是更多钞票其实我是想叫只有mouseDown事件中的函数被调用一次。

这里是一个jsfiddle来非常简单地表明这一点。 http://jsfiddle.net/rmossuk/W9vmW/1/

如果您单击否,单击此处它的鼠标按下事件被调用两次。

回答

3

您必须在mouseDown函数中使用return false;

+0

再次感谢sly7_7 :-) – 2012-08-16 12:14:49

+0

不客气:) – 2012-08-16 12:18:27

0

或者你可以使用event.stopPropagation()。我更新了你的小提琴,请参阅http://jsfiddle.net/W9vmW/2/

有一个关于事件烬冒泡的工作方式在这里更多的信息 - http://emberjs.com/guides/view_layer/#toc_event-bubbling

事件将泡,直到事件到达根视图视图层次结构。事件处理程序可以使用相同的技术为正常jQuery的事件处理程序停止传播:

返回从方法假 event.stopPropagation