2011-11-07 1 views
0

나는 HTA 코드를 만들고 있기 때문에 나는 IE가 붙어있다. (jQuery die()가 작동하지 않습니다.

<select> 요소에 변화 이벤트를 함정에 넣을 필요가 있었지만 IE는 그 이벤트를 지원하지 않았다 .

그래서 나는 그것을 모방하는 방법을 만들었습니다. <input type="text">을 클릭하면 바로 아래에 <select>이 표시됩니다. 문제는 내가 select 외부를 클릭 할 때 select를 숨기고 싶습니다 .

I clickclick를 잡으려고 시도했지만, 처음에는 문제가 없었지만 select은 숨겨졌습니다.

질문 은 다음과 같습니다. 거기에 뭔가가이 코드가 잘못 되었습니까? 또는이 작업을 수행하는 더 좋은 방법이 있습니까? 내가 IE와 붙어 기억하십시오 .

+1

Internet Explorer (7 이상)는 "change"이벤트를 지원합니다. [여기에 설명 할 jsfiddle이 있습니다.] (http://jsfiddle.net/23qm3/) – Pointy

+0

@Pointy는 투표를 통해 답변을 게시 할 수 있습니까? 너 나 학교에 받아 줘야 해. –

+0

하하 확신! 잠시만 기다려주십시오 ... – Pointy

답변

1

Internet Explorer 7 이상 (IE7은 대부분 립스틱을 사용하는 IE6이므로, 쉽게 테스트 할 수는 없습니다.) do은 변경 이벤트를 지원합니다. Here은 정말 간단한 데모가있는 jsfiddle입니다.

IE가 이상한 일을하는 것은 사실입니다. 예를 들어, "변경"은 버블되지 않으며 (적어도 <select>에서, 그리고 아마도 다른 것들에서) jQuery 패치가 적용됩니다. 또한 체크 박스와 라디오 버튼이있는 고전적인 문제가 있는데, 초점을 잃을 때까지 "변경"을하지 않아서 기본적으로 쓸모가 없습니다. 그 사람들을 위해, 나는 "클릭"잘 작동 찾으십시오.

1

.die()가 올바르게 작동하려면 선택기가 .live()에서 처음 사용 된 선택기와 정확히 일치해야합니다.

+0

그걸 확인했는데 예제가 –

+1

입니다. $ ("# demo")를 호출하면 live ("click", click_does_this); die는 $ ("# demo")라고해야합니다. die ("click", click_does_this); $ ('# demo')가 아닌. die(); 특히 IE 호환성을 다루는 경우. 어떤 식 으로든 .on()과 .off()를 사용하여 jQuery 1.7을 사용해보십시오. IE 호환성이 훨씬 향상되었습니다. – John