문제

나는있다 div 그것은 Ajax 호출에서 반환됩니다. a. JavaScript로 클릭해야하지만 IE6과 FF에서 작동하는 방법을 찾을 수 없습니다.

이것은 FF에서 작동하지만 an을 생성합니다 객체가 필요합니다 IE6의 오류 :

$('#mylink').click();

이것은 IE6에서 작동하지만 a $ ( "#mylink"). get (0). Click은 함수가 아닙니다. FF의 오류.

$('#mylink').get(0).click();

이것이 이유와 어떤 종류의 솔루션을 사용할 수 있습니까?

편집하다:

트리거 사용 IE6에서 클릭하는 것과 동일한 오류를 반환합니다.

$('#mylink').trigger('click');

편집하다:

코드를 타이머에 배치하면 동작이 변경되지 않습니다.

 setTimeout(function() {
  $('#mylink').click();
 }, 100);

편집하다:

해결 방법 으로이 기능. 그러나이 문제를 더 잘 이해하는 것이 좋을 것입니다. 이것은 jQuery 문제만이 아닙니다. IE6 JavaScript 오류는 Microsoftajax.js에서 나옵니다.

 var anchor = $('#mylink');
 if (anchor.get(0).click) {
  anchor.get(0).click();
 }
 else {
  anchor.click();
 }
도움이 되었습니까?

해결책

$ ( "#mylink"). click ()가 찾을 수 없지만 $ ( "#mylink"). get (0) .click () IS는 이것을 테스트의 기초로 사용할 수 있습니까?

예를 들어

if ($("#mylink").click)
{
    $("#mylink").click()
}
elseif ($("#mylink").get(0))
{
    $("#mylink").get(0).click();
}

이상적인 것과는 거리가 멀지 만 IE6을 다룰 때의 방식입니다.

다른 팁

Get 메소드는 DOM 요소를 반환합니다. 대신 eq를 사용합니다.

$('#mylink').eq(0).click();

a를 사용하는 것은 어떻습니까 방아쇠 ?

$("#mylink").trigger('click');

노력하다:

$('#mylink').trigger('click');

해야 한다 그러나 첫 번째 예와 동일하지만, 요소가 존재하는지 확인하기 위해 IE의 일부 경고를 수행하십시오 (어딘가에 복제 된 ID가있을 수 있습니까?).

그만큼 객체가 필요합니다 즉, 찾을 수 없기 때문에 생성 될 수 있습니다 #mylink 선택기 정시. 성공 콜백 함수에서 호출을 수행하거나 클릭을 트리거하기 전에 요소를 사용할 수 있는지 확인하는 타임 아웃 기능을 제공하십시오.

window.setTimeout(function() {
    if ($("#mylink").length) {
        $("#mylink").trigger('click');
        return false;
    }
    window.setTimeout(arguments.callee, 1);
},1);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top