0
나는이 같은 다른 구성 요소를 포함하는 구성 요소를 만들 다트 웹 UI를 사용했다.처리 clickevents는
나는 내부 구성 요소를 클릭 할 때 그 내부 구성 요소의 내부에 화재 및 그것을 포함하는 구성 요소에 영향을주지 않습니다했다 있었다 클릭으로 원하는 응 답. 그러나 내부 구성 요소의 클릭 이벤트는 내부 구성 요소와 외부 구성 요소 모두에서 발생합니다.
내부에 클릭을 처리하고 "버블 링"에서 그것을 방지하는 방법은 부모 요소까지 있습니까? 마우스 이벤트에
<!DOCTYPE html>
<html>
<head>
<link rel="import" href="ColorItem.html">
</head>
<body>
<element name="color-item-with-inside-color-item" constructor="ColorItemWithInsideColorItem" extends="ColorItem">
<template>
<style scoped>
#inner-color-item div{
border:5px solid WhiteSmoke;
}
#inner-color-item {
margin-top:10px;
margin-bottom:0px;
}
</style>
<color-item color_text="{{color_text}}" bg_color="{{bg_color}}" text_color="{{text_color}}">
<color-item id="inner-color-item" style></color-item> <!-- THIS IS THE INNER ITEM -->
</color-item>
</template>
<script type="application/dart" src="ColorItemWithInsideColorItem.dart"></script>
</element>
</body>
</html>
나는 요소에 이벤트 처리기를 넣어보십시오. 그리고 다트 스크립트에서 I는 다음과 같이 작성 핸들러가 있습니다 mouseEventHandler (된 MouseEvent의 EVT) { 인쇄 ("무언가를"); evt.stopPropagation(); }하지만 슬프게도 결코 발생하지 않습니다. 웹 컴포넌트 내부의 요소에 대한 클릭 이벤트를 듣는 방법을 알고 있습니까? 전 라이프 사이클 이벤트에 리스너를 추가하려했지만 내부 요소에 액세스 할 수 없습니다. 어쩌면 부모 요소 created()가 호출 된 후에 생성됩니까? – MrMambo007
아마 여러 가지 방법이 있습니다. 나를 위해 일한 접근법은 청취자를 붙이는 _inserted() _ 메소드 내부에 있습니다. 살펴 유무 : _element.onMouseDown.listen ((: https://github.com/patefacio/split_panel/blob/master/lib/src/s_p_impl/s_p_panel_base.dart를 _inserted_ 함께 마우스 이벤트에 후크 __attachListeners_를 호출 E) ...) _ 또한, 당신은 build.dart 설정이 있고 HTML을 업데이트 할 때 새로운 코드가 생성되고 있는지 확인합니다. – user1338952
제안 해 주셔서 감사합니다. 해키 한 솔루션을 시도해보고 나에게도 효과가 있는지 살펴 보겠습니다. 자동으로 실행되도록 build.dart를 설정했지만 자주 강제로 실행하여 강제로 실행합니다. 다트 팀이 웹 UI에서 이벤트 처리에 대한 여러 접근 방식을 더 잘 문서화 할 수 있기를 바랍니다. 그 아직 초보자 약간 어둡게. – MrMambo007