선택한 범위에 이벤트 핸들러 추가

SoftTimur

사용자가 통합 문서에서 선택한 범위 또는 셀에 이벤트 처리기를 추가하고 싶습니다. 사용자가 다른 셀 또는 범위를 선택 하면 일부 작업을 체계적으로 수행해야합니다.

이 참조를 보고 있지만 코드를 전체 추가 기능에 통합 할 위치를 모르겠습니다.

예를 들어, 내 Home.html, 나는

    <div id="content-main">
        <div class = "padding" id="message"></div>
        <div class="padding">
            <button class="ms-Button" id="button">Click me!</button>
        </div>
    </div>

여기 있습니다 Home.js:

(function() {
    "use strict";

    Office.initialize = function(reason) {
        $(document).ready(function() {
            app.initialize();
            $('#button').click(activateEventHandler);
        });
    };

    function onBindingSelectionChanged(eventArgs) {
        write(eventArgs.binding.id + " has been selected.");
    }
    function write(message) {
        document.getElementById('message').innerText += message;
    }

    function activateEventHandler() {
        Excel.run(function(ctx) {
            var selectedRange = ctx.workbook.getSelectedRange();
            selectedRange.addHandlerAsync(Office.EventType.BindingSelectionChanged, onBindingSelectionChanged); 
            return ctx.sync()
        }).then(function() {
            console.log("done");
        }).catch(function(error) {
            ...
            }
        });
    }        
})();

버튼이 리스너를 활성화 할 것으로 예상합니다. 그런 다음 사용자가 다른 셀이나 범위를 선택할 때마다 메시지가 작업 창에 체계적으로 추가됩니다. 그러나 위의 코드 Error: TypeError: selectedRange.addHandlerAsync is not a function는 줄에서 오류 발생 시킵니다 selectedRange.addHandlerAsync(....

사실,이 코드가 그렇게 구성되어야하는지 확신 할 수 없습니다 ... 누구든지 내 작업을 수행하기 위해 코드를 수정하는 방법을 알고 있습니까?

마이클 손더스

오류의 원인은 Range 개체에서 addHandlerAsync 함수를 호출하려고하기 때문입니다. 그러나 핸들러는 Binding 개체 또는 Document 개체에만 추가 할 수 있습니다. 당신이 선택하는 것은 정확히 당신이 성취하고자하는 것에 달려 있습니다. 귀하의 경우에는 특정 범위 에서 선택을 수신하려는 것이 아니라 실제로 문서의 어느 곳에서나 선택을 수신하려고한다고 생각합니다 . 따라서 실제로 DocumentSelectionChanged 이벤트를 사용합니다 .

(function() {
    "use strict";

    Office.initialize = function(reason) {
        $(document).ready(function() {
            app.initialize();
            $('#button').click(activateEventHandler);
        });
    };

    function onMySelectionChanged(eventArgs) {
        write(eventArgs.binding.id + " has been selected.");
        doStuffWithNewSelection();

    }
    function write(message) {
        document.getElementById('message').innerText += message;
    }

    function activateEventHandler(){
        Office.context.document.addHandlerAsync(Office.EventType.DocumentSelectionChanged, onMySelectionChanged);
    }

    function doStuffWithNewSelection() {
        Excel.run(function(ctx) {
            var selectedRange = ctx.workbook.getSelectedRange();
            // do other stuff with the selection as you wish, like read and display
        }).then(function() {
            console.log("done");
        }).catch(function(error) {
            ...
            }
        });
    }        
})();

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

선택 상자에 이벤트 핸들러를 동적으로 추가

분류에서Dev

동적으로 추가 된 범위 요소에 이벤트 핸들러 추가

분류에서Dev

핸들러가 범위에없는 이벤트 리스너 제거

분류에서Dev

특정 선택기로 클릭시 이벤트 핸들러 추가

분류에서Dev

HTML 요소에 이벤트 핸들러 추가 및 제거

분류에서Dev

배열에 이벤트 핸들러 추가

분류에서Dev

호버 이벤트 핸들러에 클래스 추가

분류에서Dev

.on () 이벤트 핸들러 앞에 확인 대화 확인 추가

분류에서Dev

이벤트 핸들러에서 선택기 변경

분류에서Dev

DOM Ready를위한 이벤트 핸들러를 추가 할 때 너무 늦을 수는 없나요?

분류에서Dev

인터페이스를 구현하는 각 클래스에 대한 이벤트 핸들러 추가

분류에서Dev

typescript를위한 강력한 형식의 이벤트 패키지입니다. 이벤트에 바인딩 된 핸들러를 추가하는 방법

분류에서Dev

라디오 버튼 및 체크 박스에 동일한 이벤트 핸들러 추가

분류에서Dev

동적으로 추가 된 MenuItem에 이벤트 핸들러 추가

분류에서Dev

이벤트 핸들러의 jQuery 'this'범위

분류에서Dev

추가 이벤트 핸들러

분류에서Dev

여러 keyup 이벤트를위한 하나의 이벤트 핸들러

분류에서Dev

방해자 한 이벤트 핸들러가 다른 이벤트 핸들러를 멈춤

분류에서Dev

여러 버튼에 동일한 이벤트 핸들러 사용

분류에서Dev

여러 핸들러에 대한 하나의 이벤트-Laravel

분류에서Dev

jQuery- 이벤트 핸들러의 범위를 제한하는 방법

분류에서Dev

여러 이벤트에 대해 동일한 이벤트 핸들러 호출

분류에서Dev

동적 jQuery 선택기가있는 루프 용 이벤트 핸들러

분류에서Dev

Meteor 템플릿에 특정한 함수를 만들고 이벤트 핸들러로 액세스 가능

분류에서Dev

Camunda에서 런타임에 이벤트 핸들러 (ExecutionListener 또는 TaskListener) 추가

분류에서Dev

.clone 요소에 이벤트 핸들러를 추가하는 방법

분류에서Dev

DataGridView에 셀 클릭 이벤트 핸들러를 추가 하시겠습니까?

분류에서Dev

동적으로 생성 된 버튼에 이벤트 핸들러 추가

분류에서Dev

동적으로 추가 된 이벤트 핸들러는 자바 스크립트에서 이전 이벤트 핸들러를 비활성화합니다.

Related 관련 기사

  1. 1

    선택 상자에 이벤트 핸들러를 동적으로 추가

  2. 2

    동적으로 추가 된 범위 요소에 이벤트 핸들러 추가

  3. 3

    핸들러가 범위에없는 이벤트 리스너 제거

  4. 4

    특정 선택기로 클릭시 이벤트 핸들러 추가

  5. 5

    HTML 요소에 이벤트 핸들러 추가 및 제거

  6. 6

    배열에 이벤트 핸들러 추가

  7. 7

    호버 이벤트 핸들러에 클래스 추가

  8. 8

    .on () 이벤트 핸들러 앞에 확인 대화 확인 추가

  9. 9

    이벤트 핸들러에서 선택기 변경

  10. 10

    DOM Ready를위한 이벤트 핸들러를 추가 할 때 너무 늦을 수는 없나요?

  11. 11

    인터페이스를 구현하는 각 클래스에 대한 이벤트 핸들러 추가

  12. 12

    typescript를위한 강력한 형식의 이벤트 패키지입니다. 이벤트에 바인딩 된 핸들러를 추가하는 방법

  13. 13

    라디오 버튼 및 체크 박스에 동일한 이벤트 핸들러 추가

  14. 14

    동적으로 추가 된 MenuItem에 이벤트 핸들러 추가

  15. 15

    이벤트 핸들러의 jQuery 'this'범위

  16. 16

    추가 이벤트 핸들러

  17. 17

    여러 keyup 이벤트를위한 하나의 이벤트 핸들러

  18. 18

    방해자 한 이벤트 핸들러가 다른 이벤트 핸들러를 멈춤

  19. 19

    여러 버튼에 동일한 이벤트 핸들러 사용

  20. 20

    여러 핸들러에 대한 하나의 이벤트-Laravel

  21. 21

    jQuery- 이벤트 핸들러의 범위를 제한하는 방법

  22. 22

    여러 이벤트에 대해 동일한 이벤트 핸들러 호출

  23. 23

    동적 jQuery 선택기가있는 루프 용 이벤트 핸들러

  24. 24

    Meteor 템플릿에 특정한 함수를 만들고 이벤트 핸들러로 액세스 가능

  25. 25

    Camunda에서 런타임에 이벤트 핸들러 (ExecutionListener 또는 TaskListener) 추가

  26. 26

    .clone 요소에 이벤트 핸들러를 추가하는 방법

  27. 27

    DataGridView에 셀 클릭 이벤트 핸들러를 추가 하시겠습니까?

  28. 28

    동적으로 생성 된 버튼에 이벤트 핸들러 추가

  29. 29

    동적으로 추가 된 이벤트 핸들러는 자바 스크립트에서 이전 이벤트 핸들러를 비활성화합니다.

뜨겁다태그

보관