0

これは簡単なはずですが、気が狂ってしまいます。テキストエリアを含む jQuery ツール オーバーレイ フォームをポップアップ表示していますが、そのテキストエリアが表示されたときにフォーカスを設定したいと考えています。フォーム自体は正常に機能していますが、フォーカスを固定できません。フォームが表示されると、次のコードが実行されます。

$(document).ready(function () { 
     console.log('firing!');]
     $('#edit-comment').css('color', '#ff0000');
     $('#edit-comment').focus();
 });

フォームが表示されると、console.log にエントリが表示され、テキストエリアの色が変化するので、コードは確実に実行され、テキストエリアを見つけます。しかし、テキストエリアにフォーカスが設定されていません。

これは非常に奇妙だと思います。そこに何か洞察はありますか?

4

3 に答える 3

1

DOM で #edit-comment が作成される前にコードが実行されると思われます。あなたのコードは document.ready で実行されるようです。

$('#edit-comment').focus();オーバーレイをロードする関数内でコードを実行してみて、それが役立つかどうかを確認してください。

于 2012-04-20T19:39:49.930 に答える
0

パントするほど答えられませんでした。時間は無駄です。ほぼ同じことを行う別の方法を見つけました。#edit-comment が作成された正確な時期についての Arno の指摘は、その一部だと思います。いずれにせよ、助けてくれてありがとう!

于 2012-04-20T22:18:29.650 に答える
0
$(function() {
   console.log("firing!");
   document.getElementById("edit-comment").style.color = "#F00";
   document.getElementByID("edit-comment").focus();
});

ただし、色はテキストの色を変更します。背景を変更したい場合は .backgroundColor を使用し、境界線を変更したい場合は .borderColor を使用します

于 2012-04-20T18:57:02.590 に答える