4
Google 클로저 구성 요소와 함께 사용할 때 stopPropagation이 작동하지 않는 이유를 파악하려고합니다. browserEvents에서는 제대로 작동하지만 구성 요소의 이벤트에서는 작동하지 않습니다. 즉 브라우저의 현상을 보여줍니다 아래 예제 코드를 참조하십시오 :Google 클로저 라이브러리 : 구성 요소의 stopPropagation
<html>
<head>
<script type="text/javascript" src="closure/goog/base.js"></script>
</head>
<body>
<div id="div1" style="border: 1px solid black; width: 500px; height: 300px; padding: 10px">
<div id="div2"></div>
</div>
<script>
goog.require('goog.dom');
goog.require('goog.ui.CustomButton');
goog.require('goog.ui.Component');
goog.require('goog.ui.Control');
goog.require('goog.style');
</script>
<script>
var outerBtn = new goog.ui.Control();
outerBtn.decorate(goog.dom.$('div1'));
var innerBtn = new goog.ui.CustomButton('Inner Button');
outerBtn.addChild(innerBtn, true);
outerBtn.setSupportedState(goog.ui.Component.State.FOCUSED, false);
innerBtn.setSupportedState(goog.ui.Component.State.FOCUSED, false)
goog.style.setStyle(innerBtn.getElement(), {
border : '1px solid red',
height : '100px'
});
goog.events.listen(outerBtn, goog.ui.Component.EventType.ACTION, function() {
console.info('outer');
});
goog.events.listen(innerBtn, goog.ui.Component.EventType.ACTION, function(e) {
console.info('inner');
e.stopPropagation();
});
</script>
</body>
</html>