jquery
  • html
  • internet-explorer-7
  • 2010-07-21 3 views 0 likes 
    0

    작동하지 않습니다 IjQuery를 <AREA> appendTo는 IE7

    IE8에
    var areaId = "eventArea" + index; 
    var tempArea = $("<AREA id='" + areaId + "' shape='rect' coords='" + value.x + "," + value.y + "," + (parseInt(value.x) + parseInt(value.w)) + "," + (parseInt(value.y) + parseInt(value.h)) + "' >"); 
    tempArea.appendTo($("map[name='wavImageMap']")); 
    $("#" + areaId).click(function() { alert('test'); }); 
    

    이 HTML <AREA> 요소를 (IE7 호환 모드 및 IE8) IE8에서 잘 작동하지만 IE7에서 올바른 결과를 생성하지 다음 코드가 생성되고 성공적으로 추가됩니다. 하지만 IE7에는 없습니다. click 이벤트가 발생하지 않습니다.

    +0

    당신은 차이가 IE8 및 IE7 사이에 무엇인지 설명하는 더 나은 일을 할 수 있습니다. 완전히 명확하지 않습니다. – JasCav

    +0

    @ Jason, 클릭 및 마우스 오버 (툴팁 표시)를 위해이 AREA 요소에 이벤트를 바인딩해야합니다. 그것은 IE8에서 잘 작동합니다. IE7에서는 이벤트가 실행되지 않습니다. 요소가 생성되지 않는 것처럼 보입니다. –

    +0

    AREA 요소가 작성되었다는 사실을 시각적으로 알려주지 않으므로. 누구나 쉽게 발견 할 수있는 쉬운 방법을 알고 있습니까? 지금까지 나는 그것이 있다는 것을 감지하기 위해 click 이벤트를 사용하고있다. –

    답변

    0

    이 경우 문제는 <area>이 아니지만 IE7은 좌표를 문자열로 변환합니다. value.x 대신 value.x.toString()을 사용하면 문제가 해결됩니다.
    코드는 다음과 같이 표시됩니다 :

    var tempArea = $("<AREA id='" + areaId + "' shape='rect' >"); 
    tempArea[0].coords = value.x.toString() + "," + value.y.toString() + "," + ((parseInt(value.x) + parseInt(value.w))).toString() + "," + ((parseInt(value.y) + parseInt(value.h))).toString(); 
    
    0

    이것은 문제가 아니지만 비슷한 문제가있어서 jQuery의 live 함수를 사용하여 해결했습니다. 같은 ... 라이브

    var areaId = "eventArea" + index; 
    var tempArea = $("<AREA id='" + areaId + "' shape='rect' coords='" + value.x + "," + value.y + "," + (parseInt(value.x) + parseInt(value.w)) + "," + (parseInt(value.y) + parseInt(value.h)) + "' >"); 
    tempArea.appendTo($("map[name='wavImageMap']")); 
    $("#" + areaId).live('click', function() { 
        alert('test'); 
    }); 
    

    ()는 기본적으로 이벤트가 (당신이 즉시 요소를 만들 경우) 현재 존재하는, 또는 미래의 모든 요소에 연결되어 있는지 확인합니다.

    +0

    'live'는 도움이되지 않았다 : ( –

    0

    IE에서 이전에 .appendTo()을 사용하는 데 문제가 있었으며 그 이유를 알 수 없습니다. 하지만 그것을 .append()으로 바꾸면 나를 위해 일했습니다.

    +0

    동일한 결과를 갖는'.append (element)'와'.append (HTML)'둘 다로 테스트 됨. IE8, IE7에서 실패 :( –

    관련 문제