-1


0

誰かが私のjQueryライブメソッドの何が問題なのか教えてもらえますか?

この簡単な時間選択アプリを作成しましたが、何らかの理由でこのコードスニペットが機能しません。 私はそれを働かせました(たぶんそれは私の想像でした)。

4つのラジオボタンがあります。 各ボタンに(jqueryのライブメソッドを使用して)クリックイベントが添付されている状態で、DIVを表示し、他のDIVを非表示にします。 また、プラグインのメソッドを新しく表示されたDIVに追加しました(私はそう思っていました)。

以下のリンクをご覧ください。私の意味がわかります。 最初のDIVは機能しますが、後続のDIVは機能しません。 何が足りないの?

ありがとうございます。

1 Answer


1


あなたのコードにはたくさんの問題があります。 一つには、idの starttime`と endtime`を持つテキストボックスがいくつかありますが、idはドキュメント内で1回しか発生しません。

あなたの問題の原因は、_any_ラジオボタンをクリックすると、 timepicker`が $( "#starttime、#endtime") `セレクターに一致する_all_要素に対して初期化されるという事実です。 つまり、最初の「div」(表示されている)は正常に機能し、選択フィールドは正常に配置されますが、後続の「div」については、関連付けられているdivが一度に配置されます隠されているため、その位置は計算できません。

あなたの `div`のIDが" daily "や" weekly "ではなく" recur1 "、" recur2 "などと呼ばれるようにコードを変更し、それらのすべてに" recur "クラスを与えることを検討します。 。 その後、すべてのifステートメントを削除して、次の操作を実行できます。

$('.recur').hide();
$('#recur'+recurType).show();

また、これを行うことで問題を解決できます。

$('#recur'+recurType).find("#starttime, #endtime").timePicker({ ... });