2011-11-08 10 views
2

私は他の誰かによってセットアップされた既存のシステムで働いています(もうここにはいません)。このシステムでは、特殊文字<span>内のテキストをクリックすると、テキストを<input>フィールドに置き換えるjs関数がトリガーされます。そこにあったテキストは<input>要素のvalueとして割り当てられています。はjavascriptで、onCreateなどのイベントはありますか?

onblurイベントは、この新しい<input>フィールドに割り当てられます。これは、AJAX呼び出しを介してデータベース内のデータを更新する関数を呼び出します。この操作の一部として、<input>フィールドが新しい値(同じ<span>の内容)に置き換えられ、onclickイベントが再割り当てされます。このようにして、テキストをクリックして変更し、別の場所をクリックすると、データベース内で自動的に更新されます。次に、各アップデートで元のイベントを動的に設定するので、再度実行することができます。

最初のイベントとその間に、<input>フィールドにアクセスしたいイベントがあります。 jquery .datepicker()を追加したいと思います。

動的に作成された要素に.datepicker()を呼び出す方法を教えてください。

+2

は、あなただけのようにも日付ピッカーをバインドする「'' でテキストを置き換えますJS機能」を更新できませんでしたか? –

+0

実際のコードも役に立ちます... – jondavidjohn

+0

@mu:これは、多くのスクリプトで、すべてのテキスト入力フィールドで使用されています。しかし、私は1つだけのためにそれを使用したいので、私は他のすべての入力フィールドの後にカレンダーボタンを望んでいません。物事はもう少し複雑になります。しかし、良いアイデア。 – user965641

答えて

3

いいえ、onCreateに似たイベントはありません。 jQueryの.live()が最も近くにあります。これにより、イベントを現在または将来のエレメントにバインドすることができます。私はそれがおそらくあなたの問題を解決すると思います。

http://api.jquery.com/live/

$('input').live('click', function() { 
    $(this).datepicker(); 
}); 

AutoSpongeが手近に指摘したように、ライブはjQueryの1.7のよう推奨されていません。代わりにonやdelegateを使用することをお勧めします。

http://api.jquery.com/on/

http://api.jquery.com/delegate/

+0

しかし、新しく作成された ''でトリガされたクリックイベントがあるようには聞こえないので、これはおそらく動作しません。ただし、フォーカスイベントが発生する可能性があります。 –

+1

liveは廃止され、代理人を使用します。 – AutoSponge

+0

@AutoSponge - ありがとう。 Onのように見え、代議員は今行く方法です。 – mrtsherman

関連する問題