[jquery] jQuery를 사용하여 .prop를 변경해도 .change 이벤트가 트리거되지 않습니다.

확인란에 이벤트 리스너가 있습니다.

<input type="checkbox" name="something">

내 이벤트 리스너 :

$('input[type="checkbox"][name="something"]').change(function() {
    //DO SOMETHING 
});

.prop확인란 을 변경하는 또 다른 이벤트 리스너가 있습니다 .

$('#button').click(function() {
    $('input[type="checkbox"][name="something"]').prop("checked", false);
});

확인란을 선택하면 DO SOMETHING트리거됩니다. 을 클릭 #button하면 .prop변경 사항이 표시되고 확인란이 시각적으로 선택 취소되지만 실행 DO SOMETHING되지 않습니다.

내가 간과하고있는 것?



답변

Change 이벤트는 코드를 사용하여 값을 수정할 때가 아니라 페이지에서 사용자 상호 작용에 의해 값이 변경 될 때 시작됩니다.

여기 에서 속성 을 사용 .change()하거나 .trigger("change")변경 한 후 :

$('input[type="checkbox"][name="something"]').prop("checked", false).change();

작동 데모


답변