0

次のコードがあります。

$('#calendarAppointmentStartTime').change(function() {
    $('#conflicts').empty();
    $('input[type=checkbox]').each(function() {
        var sThisVal = (this.checked ? "1" : "0");
        if (sThisVal == "1") {
            $(this).removeAttr("disabled");
            $('#resourceConflicts' + $(this).val()).empty();
        }
    });

    calculateScheduleEndTime();
    $('input[type=checkbox]').each(function() {
        var sThisVal = (this.checked ? "1" : "0");
        if (sThisVal == "1") {
            conflictChecker($(this).val());
        }
    });
});​

問題は次のとおりです。calendarAppointmentStartTime が初めて変更されたときに、コードがトリガーされます。2 番目の変更もトリガーされますが、後続の変更イベントはトリガーされていないようです。何が起こっているのかわかりません。2番目の $('#conflicts').html() と最初の入力チェックボックスの反復を追加する前に、それはうまくいきました。

私が行方不明になっている可能性のあるものを誰でも見ることができますか? 私は本当に新鮮な目を使うことができました。

編集:チェックボックスに関連するHTML(たくさんあるので、1つだけ含めます:

<input id="Resource10" type="checkbox" onclick="conflictChecker(10)" value="10"name="resources">    
John Doe
<br/>
Conflicts:
<span id="resourceConflicts10">0</span>

そして別の場所で:

<td>
<div id="conflicts"></div>
</td>

および calendarstarttime 入力ボックス:

conflictChecker メソッドはコンテンツを conflicts div に追加し、関連する starttime で見つかった競合の数に基づいてチェックボックスを無効にします。

4

1 に答える 1

0

みんなありがとう!

私はそれを解決しました。それは、ユースケースで欠落していたいくつかのロジックに帰着しました。

ユーザーは、チェックボックスをクリックしてリソースを選択し、競合チェッカー メソッドを実行する時間を変更できます。競合チェッカー メソッドは、チェックボックスを無効にし、ajax リターンに基づいて「チェックを外します」。値は、競合に基づいて競合 div と resourceConflicts10 (resourceID に基づいて 10 個の変更) に設定されます。2 番目の開始時刻が再び変更されると、コードは別の競合チェックを実行し、すべてのチェックボックスを有効にして、div 内の通知をクリアする必要がありました。

競合が原因でチェックボックスが「チェックされていない」という事実を見逃していたので、次のコード:

var sThisVal = (this.checked ? "1" : "0");
    if (sThisVal == "1") {
        $(this).removeAttr("disabled");
        $('#resourceConflicts' + $(this).val()).empty();
    }

次のように変更する必要がありました。

        $(this).removeAttr("disabled");
        $('#resourceConflicts' + $(this).val()).empty();

他にもいくつかの変更がありましたが、それが変更を正しく機能させたものです。

繰り返しますが、ボランティアで手伝ってくれたすべての人に感謝します。ここで、質問を投稿する前に、最初は各行を読んでおらず、それについてもう少し真剣に考えていなかったことを自問自答します。私は今、ディップスティックのように感じています。

于 2012-08-23T17:04:12.550 に答える