2010-11-30 20 views
6

これはちょっと変わったことです。私はSammy.jsアプリを持っています.HTMLが読み込まれた直後にテキストフィールドに注目したいと思っています。私はここで、このCoffeeScriptのを持っている:テキストフィールドにfocus()を設定できません

this.partial('templates/my-template.jqt').then -> 
    i = $('#item') 
    debugger 
    i.focus() 

私は、デバッガにいる間に、右のその行に、私は「私」を検査し、それがjQueryオブジェクトだと見ることができます。私はi.val( "HI THERE!")と呼んで、自分のテキストフィールドの更新を見ることもできます。しかし、i.focus()を呼び出すことは絶対に何もしません。動的に読み込まれたテキスト要素に焦点を当てられないセキュリティ機能がありますか?

+0

CoffeeScript ftw – drozzy

+0

Btw、あなたが "何か"できることが分かっていますか?私の人生の間、Sammy.js api docsから "partial"メソッドが返すものを理解することはできません。あなたはどうやってそれを理解していますか? – drozzy

答えて

0

あなたが$('#item')オブジェクトを取得していることが確かであれば、いくつか試してみることができます。

<input type="text" id="item" />という入力ボックスが1つだけあることを確認してください。同じIDを繰り返してはいけません。

次は何もしないでください。$('#item').focus()を試してみてください。

ありがとうございました。 、

Wasim

2

jQueryのフォーカス()要素に焦点を当てていませんが、それが集中するイベントハンドラをバインドします。 http://api.jquery.com/focus/

代わりにi.get()。focus()を試してください。

i.trigger 'focus' 
+0

実際、$( 'input [type = text]')。focus()を実行すると、Chromeでは動作しますが、iOSでは動作しません。実際のファイルは次のとおりです。https://github.com/pkulak/mealfire_mobile/blob/master/coffeescripts/add_extra.coffee –

+2

Chromeで 'i.get()。focus()'を実行すると、「Uncaught TypeError:オブジェクト[オブジェクトHTMLInputElement]にはメソッド 'focus'がありません。 – LarsH

+2

また、「JQueryのfocus()は要素にフォーカスしません。フォーカスを当てるイベントハンドラをバインドします」:引数なしでは、イベントハンドラをバインドしません。それは1つを引き起こす。 – LarsH

1

はこのようにそれを実行してください。何らかの理由でフォーカスを1ミリ秒遅らせると動作します。

4

試してみてください:

setTimeout(function() { $('#item').focus() }, 1); 

それはかなり一般的な問題だ

+0

。ヘック。 +1000インターネット – glyph

関連する問題