2012-10-10 3 views
1

아이폰에서 jquery .change() 이벤트가 발생하는 데 문제가 있습니다. 코드는 다음과 유사 체크 박스jquery .change() 이벤트가 iPhone에서 실행되지 않음

var checkboxes = $('#someelement').find('input[type=checkbox]'); 

checkboxes.change(function() { 

//never gets here on iPhone 
alert('hello'); 
}); 

checkboxes.filter(':checked').trigger('change'); 

목록은으로 .Append() 메소드를 페이지에 기록이 단계 전에 동적으로 생성된다.

이 모든 것이 데스크톱 브라우저와 Android 휴대 전화에서 잘 작동합니다. JQuery 버전 1.6.4 사용하기

의견이 있으십니까?

+0

현재 jQuery 버전을 사용해 보셨습니까? – feeela

답변

2

delegate을 사용해보세요. 이벤트를 현재 및 미래의 요소에 첨부 할 수 있습니다. jQuery를 1.5 로서도

$("#someelement").delegate('input[type="checkbox"]', "change", function(){ 
    alert('hello'); 
}); 

, 모든 attribute selectors need to be quoted (예. 제 선택기에서 '체크 박스 ").

+0

체크 박스 및 이벤트의 순서를 변경하면 안됩니까? 편집 : 신경 쓰지 마시고, 나는 on()과 비슷한 방식으로 작동한다고 생각했습니다. 하지만 분명히 아니 :) – Johan

+0

그것은 문제가 뭔가 다른 것 같습니다,하지만 이것은 어쨌든 일을의 올바른 방법 인 것 같습니다. – user806982