MoveUp, MoveDown 및 Delete 컨트롤 세트가있는 페이지에 항목 목록이 있습니다.IE에서 jQuery 이벤트 핸들러가 실행되지 않음
컨트롤은 기본적으로 숨겨진 목록의 맨 위에 있습니다. 당신이 항목 행 마우스를 움직일 때, 나는 도구가 현재 행으로 이동하고 클릭 이벤트가 아약스 함수를 호출 ... 이것은 파이어 폭스에서 잘 작동 JQuery와
//doc ready function:
..
var tools = $('#tools');
$('#moveup').click(MoveUp);
$('#movedn').click(MoveDn);
$('#delete').click(Delete);
..
$('li.item').mouseover(function(){
$(this).prepend(tools);
});
와 컨트롤을 선택합니다. 그러나 IE6과 IE7에서는 클릭이 발생하지 않습니다. 마우스 오버시 바인딩을 해제하고 각 마우스 오버시 리 바인딩을 시도했지만 아무 소용이 없습니다.
나는 또한 자바 스크립트 (예 : 투명한 png 충돌, Z- 색인, 위치 : 절대) 이외의 여러 가지 이유에 대해 조사했습니다. 해결책도 없습니다.
결국 각 항목에 도구 행을 추가하고 마우스 오버/아웃시 표시/숨기기가 필요했습니다. 마찬가지로 잘 작동합니다. 유일한 단점은 내 페이지에 더 많은 '도구'마크 업이 있다는 것입니다.
누군가가 IE가 무시/드롭/마우스 이벤트를 죽인 이유를 아는 사람은 누구입니까 (앞자리를 사용하여)? 나중에 이벤트를 리 바인드해도 아무런 효과가없는 이유는 무엇입니까? 내가 포기하기 전에 거의 2 시간 동안 나를 화나게했다.
충분히 공정한, 내가 말한대로 이벤트가 손실됩니다. 그런데 왜 새로운 객체에 이벤트를 추가 할 수 없습니까? 또한 개체를 복사하고 이동하지 않으려합니다. 다시 이벤트가 없어지면 다시 바인딩 할 수 있어야합니다. 또한 이벤트가 발생하지 않으면 href 링크가 뒤따를 것이라고 생각할 수 있습니다.이 경우도 발생하지 않습니다 .. 아무 일도 일어나지 않습니다. – misteraidan
그것은 IE의 DOM의 제한/버그이며, 슬프게도 IE를 지원하려고한다면 지금 당장 살아야합니다. 요소 이동과 관련하여 먼저 복제하지 않고 이동할 수 없으며 순환 참조라는 것을 만들 것입니다. 움직일 때조차도 var cloned = $ ("# element"). clone (true); $ ("# element"). remove(); $ ("newplace"). append (복제); –
좋아, 복제품입니다! 고마워. – misteraidan