jQuery를 사용하여 IE6 및 FF에서 태그를 클릭합니다
-
18-09-2019 - |
문제
나는있다 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);