2012-03-11 11 views
1

html要素をjQueryのloadメソッドに置き換え、入力された要素をクラス.focusのロードされた要素に集中させたいとします。クラス.focusを持つ要素が複数ある可能性があるので、読み込まれた要素内で選択することが重要です。jQueryでロードされた要素をフォーカスする

私は次のことを試してみましたが、それは動作しません:

paragraphToBeReplaced.load(
    "/some/url", 
    function(event) { event.data.contents(".focus").focus(); } 
); 

私がロードされた要素にフォーカスを設定するにはどうすればよいですか?私はjQuery 1.7.1を使用しています。コールバック関数がHTMLの後に実行されているので、

paragraphToBeReplaced.load("/some/url", function(event) { 
    $(".focus", paragraphToBeReplaced).focus(); 
}); 

これは動作するはずです:あなたはすでにあなたが新しいコンテンツをロード先の要素への参照を持っているので

答えて

4

ロード・コールバック内thisは、新しいコンテンツがロードされる要素です。 find()を使用すると、この要素内でクラスを検索できます

paragraphToBeReplaced.load("/some/url", function() { 
     $(this).find(".focus").focus(); 
}); 
+0

ありがとうございます、それは動作します。 – deamon

+0

両方のアンサーは本質的に同じです...他の答えはjQueryコア内のfind()を使って同じことをします – charlietfl

3

は、あなたがコンテキストとして再びそれを使用することができますURLによって返された要素が要素に挿入されています。

+0

ありがとう、それは動作します。 – deamon