IE6でタグをクリックするとjQueryを使用して、FF
-
18-09-2019 - |
質問
私はdiv
が含まれているAJAX呼び出しから返されa
を持っています。私は、しかし、私はIE6とFFの両方で動作する方法を見つけることができません、JavaScriptでそれをクリックする必要があります。
これはFFで動作しますが、のオブジェクトに必要なのIE6でエラーが発生します:
$('#mylink').click();
これはIE6で動作しますが、発生し、の$( "#のmylink")。(0).clickが関数ではありません取得のFFでエラーます。
$('#mylink').get(0).click();
これは、その溶液の種類が利用可能である理由上の任意のアイデア?
EDITます:
トリガーを使用すると、IE6でのクリックと同じエラーを返します:
$('#mylink').trigger('click');
EDITます:
タイマーでコードを配置することで動作を変更しません。
setTimeout(function() {
$('#mylink').click();
}, 100);
EDITます:
この問題を回避するには、この機能。しかし、よりよく問題を理解するためにいいだろう。これだけで(または多分全く)jQueryの問題ではありません。それはそれとは何かを持っているので、IE6 JavaScriptエラーがMicrosoftAjax.jsから出てきます。
var anchor = $('#mylink');
if (anchor.get(0).click) {
anchor.get(0).click();
}
else {
anchor.click();
}
解決
もし$( "#のmylink")。(クリック)したが、$( "#のmylink")されていません。(0).click(取得)、そしてあなたは、テストのための基礎としてこれを使用することができますか?
など
if ($("#mylink").click)
{
$("#mylink").click()
}
elseif ($("#mylink").get(0))
{
$("#mylink").get(0).click();
}
理想からかけ離れ、私は知っているが、そのような物事のやり方でIE6を扱うときに
他のヒント
getメソッドは、DOM要素を返します。 あなたが代わりに例えばを使用する必要があります。
$('#mylink').eq(0).click();
どのようにトリガする?
$("#mylink").trigger('click');
試します:
$('#mylink').trigger('click');
の万一あなたの最初の例と同じで、しかし...(多分あなたは重複どこかIDか何かを持っている?)要素が存在することを確認するためにIEでいくつかの警告を行うと、すべてのこと。
#mylink
セレクタを見つけることができませんので、必要のオブジェクトのは、おそらく生成されます。あなたは成功コールバック関数で呼び出しを行うことを確認してくださいまたは要素は、クリックをトリガーする前に利用可能であるかどうかを確認するタイムアウト機能を提供します:
window.setTimeout(function() {
if ($("#mylink").length) {
$("#mylink").trigger('click');
return false;
}
window.setTimeout(arguments.callee, 1);
},1);