jquery
  • checkbox
  • onchange
  • 2016-08-29 5 views 0 likes 
    0

    이 같은 체크 박스 상에 onchange 이벤트를 부착하고있어 발사 onchange를 :확인란을 두 번

    $("input[type='checkbox'][name='auswahl[]']").on("change", function() { 
        alert($(this).attr("id") + ' ' + $("label[for='" + $(this).attr("id") + "']").text() + $(this).attr("checked")); 
    }); 
    

    체크 박스는 다음과 같이 :

    <input type="checkbox" name="auswahl[]" id="aus_nunatsiaqnews_ca"><label for="aus_nunatsiaqnews_ca" title="Canada">Nunatsiaq News</label> 
    

    불행히도 이벤트가 두 번 발사됩니다. 위에서 주어진 코드를 분리하고 테스트 페이지에두면 모든 것이 잘되고 이벤트는 한 번만 실행됩니다. 도움이 필요합니다.

    +0

    이벤트 핸들러를 연결하는? – Satpal

    +0

    일단 https://jsfiddle.net/gkz5owms/가 트리거됩니다. 어떻게 든 당신은 두 번 onchange를 붙이고 있다고 생각합니다. – esertbas

    +0

    @Satpal : 확인란의 정의가 끝나면 페이지 하단에 붙일 것입니다. 온로드 또는 문서 준비가되어 있지 않습니다. – Sempervivum

    답변

    0

    일반적으로 "onClick"이벤트가있는 컨트롤이 "onClick"이벤트가있는 다른 컨트롤 안에 중첩되어있을 때 발생합니다. 요소 중 하나를 클릭하면 두 요소에 대한 이벤트가 트리거됩니다. 두 요소 중 어떤 요소를 클릭할지 알 수 없기 때문입니다. 다행히도 자바 스크립트에서는이를 방지 할 수 있습니다. 예 : "MYFUNC"사용 "인 stopPropagation"에서, 다음

    onClick="myFunc($event)"

    과 : 다음 HTML에서, 클릭 이벤트과 같이 처리하는 함수에 "$ 이벤트"매개 변수를 전달

    myFunc($event) { 
     
        // ... some code ... // 
     
        $event.stopPropagation(); 
     
    }

     관련 문제

    • 관련 문제 없음^_^