2012-12-09 2 views
3

단추가 들어있는 ListView 내의 항목 목록이 있습니다.ListView 내의 단추에 이벤트 리스너 추가 - WinJS

JS :

downloadsListView = document.getElementById('downloads').winControl 
downloadsListView.itemDataSource = JobList.dataSource 
downloadsListView.onloadingstatechanged = function() { 
     var _this = this; 
     return WinJS.Utilities.query("button.play_pause_button", document.getElementById('downloads')).forEach(function(element) { 
     console.log(element); 
     return element.onclick = _this._play_pause_download; 
     }); 
    }; 

나는 것을 말씀 드릴 수 있습니다 나는


코드입니다 ... 버튼에 이벤트 리스너를 추가 할 수있는 방법을 찾을 수 없습니다 함수는 콘솔 출력을 통해 버튼을 반복합니다. 그러나 버튼을 클릭하면 아무 것도 발생하지 않습니다.

누군가 도와 드릴 수 있기를 바랍니다. 감사합니다 :)

답변

2

사용자가 요소를 두드 리거나 클릭 할 때 발생하는 이벤트 수신기를 ListViewItem에 추가하지 않는 이유는 무엇입니까? 이것이 올바른 방법입니다.

ListView에는 onItemInvoked이 있습니다. Mor 정보는 found here 일 수 있습니다. 귀하의 경우

예 :

<div id="downloads" data-win-control="WinJS.UI.ListView" 
data-win-options="{oniteminvoked : _play_pause_download}"> 
</div> 
+1

항목 내에 특정 대화 형 요소가있는 경우 대화 형 기능을 허용하려는 요소에 'win-interactive'를 추가 할 수도 있습니다 –

2

나는 도미닉의 댓글이 가장 좋은 건 생각합니다. MSDN에 ListView.itemTemplate property 페이지

는 항목 템플릿 대부분의 다른 컨트롤을 포함 할 수있는 항목 템플릿에 대화 형 요소를 추가 ...라고하지만, 그것은 FlipView 또는 다른 ListView에 포함 할 수 없습니다. 사용자가 요소와 상호 작용할 때

보통은 ListView에 그 상호 작용을 캡쳐하고, 사용자가 선택한 또는 항목을 호출 또는 항목으로 패닝되어 있는지 여부를 확인하는 데 이용한다. 컨트롤을 입력 받기 위해 대화 형 요소 인 경우 대화 형 요소에 win-interactive 클래스를 첨부하거나 부모 요소에 중 하나를 첨부해야합니다. 해당 요소와 해당 하위 요소는 상호 작용을 수신하며 더 이상 ListView 이벤트를 트리거하지 않습니다.

당신이이 윈 - 인터렉티브 항목 템플릿의 요소, 요소가 전체 항목을 기입하지 않는 것을 확인 첨부

는, 그렇지 않으면 사용자가 해당 항목을 선택하거나 호출 할 수있는 방법이 없습니다.

대화 형 요소를 항목 템플릿에 추가하려면 WinJS.Binding.Template 대신 템플릿 함수를 사용해야합니다.

관련 문제