2012-08-16 121 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